关键字global和nonlocal的用法

大兔子大兔子 提交于 2020-02-08 20:52:52

1.首先,要明确 nonlocal 关键字是定义在闭包里面的(不定义在闭包里会抛异常SyntaxError: nonlocal declaration not allowed at module level)

 

在闭包里面加入nonlocal关键字进行声明。当使用 nonlocal 时,就声明了该变量不只在嵌套函数inner()里面才有效, 而是在整个大函数里面都有效

2.global 是对整个环境下的变量起作用,而不是对函数内的变量起作用。

 

总结:nonlocal与global的区别

nonlocal:如果在闭包内给该变量赋值,那么修改的其实是闭包外那个作用域中的变量。

global:用来表示对该变量的赋值操作,将会直接修改模块作用域里的那个变量。(nonlocal与global互为补充)

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!