Python的LEGB規則


一:LEGB含義解釋

字母 英語 釋義 簡稱 作用空間
L Local(function) 當前函數內的作用域 局部作用域 局部
E Enclosing Functions Locals 外部嵌套函數的作用域 嵌套作用域 局部
G Global(module) 函數外部所在的命名空間 全局作用域 全局
B Built In(python) Python內置模塊的命名空間 內建作用域 內置

尋找變量的調用順序,就是采用的LEGB原則(就近原則)

尋找順序:從下往上、從里往外

局部變量:
    函數內部的變量(局部命名空間)

全局變量:
    函數內部和外部(全局命名空間)
(1)內部函數可以直接在函數外部調用么?   				   不行!
(2)調用外部函數后,內部函數可以在函數外部調用嗎			不行!
(3)內部函數可以在函數內部調用嗎   					可以
(4)內部函數在函數內部調用時,是否有先后順序 有先后順序

二:查找順序

foo()內部的print(a)為例:

1.如果foo()函數內部有a這個變量,那么a這個變量就是局部的

2.如果foo()函數內,沒有這個變量,那么就會去找該函數外層的函數func()中,有沒有a這個變量,如果有,那么這個a就是閉包的

3.如果func()中沒有變量a,那么就會去最外層的全局變量找

4.如果全局變量沒有a,就去內置中找


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM