十:Python之LEGB规则

Python在查找 ‘ 名称‘ 时,是按照LEGB规则查找的:

Local --> Enclosed --> Global --> Built in

Local:指的就是函数或者类的方法内部

Enclosed:指的是嵌套函数(一个函数包裹另一个函数,闭包)

Global:指的是模块中的全局变量

Built in:指的是Python为自己保留的特殊名称

如果某个name映射在局部(local)命名空间中没有找到,接下来就会在闭包作用域(enclosed)进行搜索,如果还是没有找到,就继续在全局(global)命名空间中进行查找,最后会在内建(built in)命名空间中搜索;如果一个名称在所有命名空间中都没有找到,就会产生一个NameError。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Python进阶 - 命名空间与作用域 写在前面 如非特别说明,下文均基于Python3 命名空间与作用于跟名字的...
    理查德成阅读 5,005评论 3 8
  • 课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...
    郭_扬阅读 4,172评论 0 4
  • 阐述LEGB前,需要先对Python的命名空间、作用域有一定的了解。 命名空间 命名空间表示变量的可见范围,一个变...
    kakarotto阅读 10,069评论 0 2
  • 有个小伙伴很惊讶地问我:你不是结婚了吗?还天天写文章啊?那你老公怎么办?女人结婚了,要以家庭为重。文章可写可不写,...
    小考拉俱乐部阅读 3,860评论 2 1
  • 前些日子在小区漫步,偶遇一只小水鸡在池中游荡,旁若无人悠闲自得,似乎在欣赏小区诱人的风景。我试着慢步接近它...
    平安果_7c29阅读 4,383评论 0 0

友情链接更多精彩内容