分享

python global、locals()、nonlocal

 小猪窝969 2018-12-04
global 定义全局变量,必须先声明,在使用
例如:global a #声明全局变量
   a = a+1
locals() 获取本函数作用域中的局部变量(函数即变量)
nonlocal 必须在整个嵌套函数作用域内定义局部变量,获取上层函数的变量
例如:
1.
def  test():
a = 1
def test1():
nonlocal a #必须先声明
a = a+1
print (a)
return test1
t = test()
t()
打印a = 2 
2.
def test():
a = 1
def test1():
def test2():
nonlocal a
a = a + 1
print (a)
return test2
return test1
t = test()
print(t)
a = t()
a()
打印a = 2
如果nonlocal的外层函数没有定义局部变量,则报错

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多