在理解Python的nonlocal的关键字前,要明确Python引用变量的顺序。
Python引用变量的顺序:当前作用域局部变量->外层作用域变量->当前模块中的全局变量->Python内置变量。
nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量。
示例如下:
def make_counter():
count = 0
def counter():
nonlocal count # 非本地变量,使用外部变量count
count += 1
return count
return counter
mc = make_counter() # 返回嵌套函数counter
print(mc())
print(mc())
print(mc())
与nonlocal关键字相对应的是global关键字,详情请参见Python global 关键字。