Python 3.x中的nonlocal及其在2.x中的变通办法
在Python 2.x中,函数内部可以定义函数,内层的函数可以读取外层函数的局部变量,但却不可以修改它.
def outter():
x = 1
def inner():
print("inner is called, x=", x)
return inner
outter()()
上面这个程序是没问题的,但是,下面这个就会出错:
def outter():
x = 1
def inner():
print("inner is called, x=", x)
x = 2
return inner
outter()()
提示竟然是UnboundLocalError: local variable 'x' referenced before assignment
,找不到变量 …