global和nonlocal
def scope_test():
def do_local():
spam = "局部变量" # 1
# spam = "nonlocal 变量"
def do_nonlocal():
nonlocal spam # 使用外层的spam变量
spam = "nonlocal 变量" # 2
def do_global():
global spam
spam = "global 变量" # 3
spam = "test spam" # 4
do_local()
print("本地分配后:", spam) # 4
do_nonlocal()
print("nonlocal分配后:", spam) # 2
do_global()
print("global分配后:", spam) # 2
scope_test()
print("全局范围:", spam) # 3
#结果4223