Python中的非局部变量

非局部语句可以让所列的标识符(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
版权声明:本文为博主原创文章,转载请附上博文链接!

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容