首先我们看一段代码,是不是有很多疑惑
defscope_test():defdo_local():
spam= "local spam"
defdo_nonlocal():
nonlocal spam
spam= "nonlocal spam"
defdo_global():globalspam
spam= "global spam"spam= "test spam"do_local()print("After local assignment:", spam)
do_nonlocal()print("After nonlocal assignment:", spam)
do_global()print("After global assignment:", spam)
scope_test()print("In global scope:", spam)'''输出:
After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: nonlocal spam
In global scope: global spam'''
一直看不明白第三个为什么时这样,补充一下
x =0defouter():
x= 1
definner():globalx
x= 2
print("inner:", x)
inner()pri