python global函数/全局变量/局部变量

  1. 局部变量
    只能在子程序可调用,不可跨程序调用
def fun():
    a = 10
    print(a)

def fun1():
    b=20
    c=a+b
    print(c)

print('调用函数fun')
fun()
print('调用函数fun1')
fun1()
输出:
调用函数fun
10
调用函数fun1
Traceback (most recent call last):
  File "C:\Users\高顿\Desktop\myblog.py", line 13, in <module>
    fun1()
  File "C:\Users\高顿\Desktop\myblog.py", line 7, in fun1
    c=a+b
NameError: name 'a' is not defined
  1. 全局变量:用global 声明,可在全局调用
情况1:
在函数外声明全局变量:(可行)
global m
m=30
def fun():
    a = 10
    b=a+m
    print(b)
print('调用函数fun')
fun()
输出:
调用函数fun
40
情况2.
在函数1内声明全局变量,在函数2内调用:(不可行)
def fun():
    global m
    m=30
    pass
def fun1():
    b=20
    c=b+m
    print(c)

print('调用函数fun1')
fun1()
输出:
调用函数fun1
Traceback (most recent call last):
  File "C:\Users\高顿\Desktop\myblog.py", line 14, in <module>
    fun1()
  File "C:\Users\高顿\Desktop\myblog.py", line 10, in fun1
    c=b+m
NameError: name 'm' is not defined
情况3
在函数外赋值变量,在函数1内声明将其声明为全局变量,在函数2内调用(可行)
m=30
def fun():
    global m
    pass
def fun1():
    b=20
    c=b+m
    print(c)

print('调用函数fun1')
fun1()
输出:
调用函数fun1
50

结论:
全局变量必须在程序外赋值,但在程序内或程序外声明都可以。

猜你喜欢

转载自blog.csdn.net/weixin_44595372/article/details/87969431