为什么80%的码农都做不了架构师?>>>   

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

运行结果:

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

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

转载于:https://my.oschina.net/avatus/blog/1926528

python:LEGB标识符解析顺序相关推荐

  1. python类中方法的执行顺序-浅谈Python的方法解析顺序(MRO)

    方法解析顺序, Method Resolution Order 从一段代码开始 考虑下面的情况: class A(object): def foo(self): print('A.foo()') cl ...

  2. python方法解析顺序_浅谈Python的方法解析顺序(MRO)

    方法解析顺序, Method Resolution Order 从一段代码开始 考虑下面的情况: class A(object): def foo(self): print('A.foo()') cl ...

  3. python面向对象--方法解析顺序(MRO)

    转载:https://www.cnblogs.com/qunxiadexiaoxiangjiao/p/8311429.html 对于支持继承的编程语言来说,其方法(属性)可能定义在当前类,也可能来自于 ...

  4. Python的方法解析顺序(MRO)变化过程

    MRO,即 Method Resolution Order,是继承中确定调用哪个方法(属性)的搜索顺序方法. 对于只支持单继承的语言(Java和C#)来说,MRO 一般比较简单:而对于 C++, Py ...

  5. python legb_Python变量作用域LEGB用法解析

    这篇文章主要介绍了Python变量作用域LEGB用法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 闭包就是, 函数内部嵌套函数. 而 装饰器只 ...

  6. 图解Python 3.x多继承时方法解析顺序MRO

    在Python 3.x的多继承树中,如果在中间层某类有向上一层解析的迹象,则会先把本层右侧的其他类方法解析完,然后从本层最后一个解析的类方法中直接进入上一层并继续解析,也就是在从子类到超类的反向树中按 ...

  7. Python中的类、实例以及方法,MRO继承解析顺序以及Mixin类

    Contents 1. 什么是类和实例 2. 类的实例方法.类方法和静态方法 3. MRO是什么,描述其查找顺序 4. Mixin是什么,描述其应用场景 5. References 1. 什么是类和实 ...

  8. python新式类c3算法_Python新式类的方法解析顺序MRO与Super

    新式类与经典类的方法解析顺序 MOR(方法解析顺序) 经典类:深度优先 DFS python3以前 新式类:广度优先 python2.2 新式类:广度优先的C3算法实现(拓扑排序) BFS pytho ...

  9. python新式类c3算法_Python 新式类继承关系的 C3 算法(Python 2.3 的方法解析顺序,MRO)...

    Python 新式类继承关系的 C3 算法(Python 2.3 的方法解析顺序,MRO) 翻译:刘硕 摘要:本文档面向于想要了解Python 2.3版本中 C3 方法解析顺序的 Python程序开发 ...

最新文章

  1. 浅谈创业性公司的发展
  2. JAVA_IO流四大家族(2)
  3. python之路-双下方法
  4. 基于参考点的非支配遗传算法-NSGA-III(一)
  5. 删除mysql 执行计划_如何清除某条SQL的执行计划
  6. 腾讯QQ2010安装时提示“C:\windows\Installer\QQ2010.msi时发生网络错误”的解决方 ......
  7. python办公实例100例-Python 100例(上)
  8. dubbo 分布式服务框架 介绍
  9. 使用安卓的http进行数据的发送需要做的首先就是授权
  10. 【Java学习笔记】数组的相关事项
  11. HDU 1394 求逆序数(线段树)
  12. 简单差分运放公式推倒
  13. DSI3协议 CRM模式通信讲解
  14. 机器学习告诉你,新型冠状病毒接下来将如何变异?
  15. 检查更新时出错:无法启动更新检查(错误代码为 3: 0x80040154)
  16. Python——pyqt5的计算器(源码+打包)
  17. Windows11 C盘清理-系统休眠文件占用15G
  18. 华硕VM590Z的性能究竟如何?
  19. qt撤销与回退_Qt 的撤销回退事件 - osc_1i3ltp99的个人空间 - OSCHINA - 中文开源技术交流社区...
  20. 瑞典爱立胜ALiSENSOR激光对中仪维修A1518/A1519/A1520等型号

热门文章

  1. 【转】 Android Fragment 真正的完全解析(下)
  2. hadoop面试记录(一)
  3. shell getopt 获取参数
  4. thirft支持双向通信
  5. 解决首次运行WebDriverAgent手机开发者未信任问题
  6. linux文件和目录基本管理系统,Linux文件基本操作管理和系统目录结构
  7. 数据库学习day_03:关联关系/ 关联查询/ JDBC
  8. python程序间通信,python 实现 socket 进程间通信
  9. FMDB使用Cached Statement功能
  10. 分享Kali Linux 2016.2第50周虚拟机