全局变量和局部变量用同一个名称,就是内层屏蔽外层
a = 10 #全局变量
def example():
a = 12 #局部变量
print(a * 2)
example()
结果:
24
要定义函数外的变量赋值,就要声明为全局变量global
#要定义函数外的变量赋值,就要声明为全局变量global
def example2(x):
print(a)
a = 12 #局部变量
print(a * x)
a = 6 #全局变量
example2(2)
print(a)
结果:
UnboundLocalError: local variable 'a' referenced before assignment
翻译:赋值前引用的局部变量'a'
def example2(x):
global a #声明全局变量
print(a)
a = 12
print(a * x)
a = 6
example2(2)
print(a)
结果:
6
24
12