Python LEGB 原则

LEGB

找寻变量的调用顺序采用LEGB原则(即就近原则)

L —— Local(function);当前函数内的作用域 (局部作用域) (局部命名空间)
E —— Enclosing function locals;外部嵌套函数的作用域(嵌套作用域) (局部命名空间)
G —— Global(module); 函数外部所在的命名空间 (全局作用域) (全局命名空间)
B —— Built in(Python);Python内置模块的命名空间 (内建作用域) (内置命名空间)

依据就近原则,从上往下、 从里向外依次寻找。

Local–> Enclosed–>Global–>Built in

mark

(1)内部函数可以直接在函数外部调用么? 不行!
(2)调用外部函数后,内部函数可以在函数外部调用吗 不行!
(3)内部函数可以在函数内部调用吗 可以
(4)内部函数在函数内部调用时,是否有先后顺序 有先后顺序

扩展

lambda、eval、nonlocal

参考

Python命名空间

发布了441 篇原创文章 · 获赞 870 · 访问量 111万+

猜你喜欢

转载自blog.csdn.net/qq_31821675/article/details/103890541