再来个加强版
def fun():
global a
a=2
def fun1():
a=3
if __name__=='__main__':
global a
a=1
print(a)
fun()
print(a)
fun1()
print(a)
结果:
=============== RESTART: H:\mod_spid\test4.py ==============
1
2
2
>>>
def fun():
global a
a=2
def fun1():
global a
a=3
if __name__=='__main__':
global a
a=1
print(a)
fun()
print(a)
fun1()
print(a)
结果:
=============== RESTART: H:\mod_spid\test4.py ==============
1
2
3
>>>
def fun():
global a
a=2
def fun1():
global a
a=3
def fun3():
a=4
fun4()
def fun4():
a=5
if __name__=='__main__':
global a
a=1
print(a)
fun()
print(a)
fun1()
print(a)
fun3()
print(a)
结果:
=============== RESTART: H:\mod_spid\test4.py ==============
1
2
3
3
>>>
最后一个:
def fun():
global a
a=2
def fun1():
global a
a=3
def fun3():
global a
a=4
fun4()
def fun4():
a=5
if __name__=='__main__':
global a
a=1
print(a)
fun()
print(a)
fun1()
print(a)
fun3()
print(a)
结果:
=============== RESTART: H:\mod_spid\test4.py ==============
1
2
3
4
>>>
结论:
Python里面,默认局部变量优先,不声明为global,都一律视为局部变量。