您现在的位置是:首页 > 文章详情

python:LEGB标识符解析顺序

日期:2018-09-02点击:417
""" LEGB查询规则: L locals 局部变量,当前所在命名空间(如函数,模块等) 注意,包括函数的参数(形参) E Enclosing Function 闭包空间(外部嵌套函数的命名空间) G Globals 全局变量,某个python模块的命名空间 B Builtins python内建模块的命名空间 """ key='Hello'#模块全局 def test(): print(key)#全局,输出:Hello def test2(key): print(key,end='***')#局部(形参),输出 key参数传入的值 key=key+str(512) print(key) def test3(): #print(key) """ 这里↑遵循LEGB规则解析标识符key的时候, 在函数locals中发现了key=1024 key不再当作全局变量解析,所以打开注释后这里会报错: local variable 'key' referenced before assignment """ key=1024#注意和前面的test函数比较 print(key) def test4(): global key #若要在模块内的某个函数里面修改模块全局变量,一定要有global关键字 key=1024 if __name__ == '__main__': test() test2('hi') test3() test4() test() 

运行结果:

Hello hi***hi512 1024 1024 Process finished with exit code 0

这个问题使用pycharm编程时候,编辑器是可以用高亮给你提示出来的......So,有个好的IDE真实省心省力啊O(∩_∩)O

原文链接:https://yq.aliyun.com/articles/633471
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章