def scope_test():

def do_local(): spam = "local spam"def do_nonlocal(): nonlocal spam spam = "nonlocal spam"def do_global(): global spam spam = "global spam"#spam虽然声明了global但此处仍是函数内的局部变量spam = "test spam"do_local()print("After local assignment: ",spam)#"test spam"do_nonlocal()print("After nonlocal assignment: ",spam)# "nonlocal spam"do_global()print("After global assignment: ",spam)#

scope_test()
print("In global scope: ",spam)#do_global函数会自己定义一个全局变量spam,即使没有预先定义的全局变量

https://www.jb51.net/article/114951.htm