作用域 LEGB

“作用域”定义了Python在哪一个层次上查找某个“变量名”对应的对象。接下来的问题就是:“Python在查找‘名称-对象’映射时,是按照什么顺序对命名空间的不同层次进行查找的?”

答案就是:使用的是LEGB规则,表示的是Local 局部 -> Enclosed 嵌套 -> Global 全局 -> Built-in 系统内置,其中的箭头方向表示的是搜索顺序。

python作用域是以函数、类、模块来区分的,而不是块

也就是说if、while,for并不会影响变量的作用域!!!,python中没有块作用域。

这就能解释python的if name=='mian'中声明的变量同样是全局变量

results matching ""

    No results matching ""