python世界里的局部变量和全局变量: 潜规则太重要了!!!
先上代码:
def fun():
def test_global():
'''
内层和外层都需要声明为global, 才能彻底打通变量名和值的一致性
'''
global a
a=9
def f():
global a
a= a*a
print('a={} in 内层函数里'.format(a))
f()
print ('a={} in test_global()'.format(a))
print(id(a)) # 全局域的
print()
def test_global2():
#global a
a=9 # 局部域的
print( id(a))
def f():
global a #全局域的
print(id(a))
a= a*a
print('
a={} in 内层函数里'.format(a))
f()
print ('a={} in test_global2()'.format(a))
test_global()
test_global2()
print('a={}'.format(a))
fun()
'''
a=81 in 内层函数里
a=81 in test_global()
a=6561 in 内层函数里
a=9 in test_global2()
a=6561
'''