do_global()中,尝试将全局变量spam修改为“global”,但是无法修改
spam="xxx"
def scope_test():
def do_local():
spam = "local spam" # 此函数定义了另外的一个spam字符串变量,并且生命周期只在此函数内。此处的spam和外层的spam是两个变量,如果写出spam = spam + “local spam” 会报错
def do_nonlocal():
nonlocal spam # 使用外层的spam变量,把test spam 改为nonlocal spam
spam = "nonlocal spam"
def do_global():
global spam # 使用全局spam变量,把nonlocal spam 改为global spam ,但是没有用,
spam = "global spam"
spam = "test spam"
do_local()
print("After local assignmane:", spam)
do_nonlocal()
print("After nonlocal assignment:", spam)
do_global()
print("After global assignment:", spam)
scope_test()
print("In global scope:", spam)