非局部语句可以让所列的标识符(identifier)指向最近的嵌套作用域(enclosing scope)中已经绑定过的变量,全局变量除外。具体参考
这篇文章:http://codingpy.com/article/what-is-nonlocal-statement-in-python/
def a():
i = 0
def b():
i=i+1
b()
a()
b()中并不会赋值,a()和b()中i重名,报错local variable 'i' referenced before assignment
def a():
i = 0
def b():
nonlocal i
i=i+1
b()
a()
b()虽然可以读到a()中的变量i,但不会对其可写,nonlocal可以指定b()中i的赋值对象指定为a()中i
作者:sschen_cn
来源:CSDN
原文:https://blog.csdn.net/sschen_cn/article/details/80271903
版权声明:本文为博主原创文章,转载请附上博文链接!