浅谈LEGB规则
来源:互联网 发布:otsu算法 编辑:程序博客网 时间:2024/05/22 11:58
LEGB是python的一种规则和限制,要想理解,必须先了解下命名空间和作用域。
命名空间
命名空间是一个变量的可用范围,变量名在不同命名空间内可相同,但是在同一个命名空间内不能相同。在python中命名空间是用字典来表示的,也就是变量名+映射对象的组合,变量名等同于key,key相同的话无法分辨取值,所以在同一个命名空间内变量名不能一样。
作用域:
变量的作用域就是有效使用范围,python的作用域是静态的,命名空间可以说是作用域的动态展示。
LGB规则(查找规则local-->global-->builtin。)
在python2.2之前只有三种作用域:
global作用域:对应的global命名空间,一个模块最外层定义的一个作用域。(全局)
local作用域:对应local命名空间,由函数定义的。(函数)
builtin作用域:对应builtin命名空间,python内部定义的最顶层的作用域,在这个作用域里面定义了各种内建函数:open、range、xrange、list等等。(内建)
LEGB规则(查找规则local-->enclosing-->global-->builtin)
python2.2之后引入闭包,简单来说就是函数嵌套函数,内层函数可用外层函数的变量,引入了enclosing(直接外围作用域)概念。
python菜鸟一枚,如有错误,望指正,如能帮你,不胜荣幸!
阅读全文
0 0
- 浅谈LEGB规则
- LEGB规则
- Python中的LEGB规则
- python中的LEGB 规则
- Python中的LEGB规则
- Python 命名空间和LEGB规则
- python的点号运算和LEGB规则的学习理解
- Python中的作用域规则:最内嵌套作用域规则 和 LEGB
- Python 变量作用域 —— 命名空间与 LEGB 规则
- 编码规则浅谈
- 浅谈C++命名规则
- 浅谈职场五傻规则
- python的LEGB原则
- LEGB作用域
- sql-server排序规则浅谈
- 浅谈C++变量命名规则
- 浅谈C++变量命名规则
- 浅谈C++变量命名规则
- CSS中clear:left/right的含义及用法
- 事务记录
- 6.9
- 一点小结fpga仿真实测不一致
- Unity之C#——用单例实现一个游戏内部的音效控制器
- 浅谈LEGB规则
- linux系统调用
- 6.5
- 2017年11月7日作业
- Manacher(处理最长回文的类似问题)
- 20171103-每日一练
- intellij与eclipse默认快捷键对比
- Android开发---OkHttp简单封装
- 居家生活|装修避免的坑