l(local)區域性作用域
區域性變數:包含在def關鍵字定義的語句塊中,即在函式中定義的變數。每當函式被呼叫時都會建立乙個新的區域性作用域。
e(enclosing)巢狀作用域或稱為閉包作用域
e也包含在def關鍵字中,e和l是相對的,e相對於更上層的函式而言也是l。與l的區別在於,對乙個函式而言,l是定義在此函式內部的區域性作用域,而e是定義在此函式的上一層父級函式的區域性作用域。主要是為了實現python的閉包,而增加的實現。
g(global)全域性作用域
即在模組層次中定義的變數,每乙個模組都是乙個全域性作用域。也就是說,在模組檔案頂層宣告的變數具有全域性作用域,從外部開來,模組的全域性變數就是乙個模組物件的屬性。
注意:全域性作用域的作用範圍僅限於單個模組檔案內
b(built-in)內建作用域
系統內固定模組裡定義的變數,如預定義在builtin 模組內的變數
Python 17 變數作用域LEGB(作用域鏈)
python中的 legb 作用域鏈 l 區域性變數 local e 外層函式 閉包空間 enclosing function g 全域性變數 global b 內建模組 builtins 當找乙個變數時,現在 local 找,即先找本函式內的變數,若找到則結束 否則,找閉包空間,即外層函式,從內向...
Python變數作用域LEGB和變數名的查詢規則
作用域 變數起作用的範圍。legb含 釋 l local function 區域性作用域 函式內的命名空間 可以通過locals 檢視。e enclosing function locals外部巢狀作用域 外部巢狀函式的命名空間 例如closure閉包函式 g global module 全域性作用...
詳解Python函式作用域的LEGB順序
1.什麼是legb?l local 函式內部作用域 e enclosing 函式內部與內嵌函式之間 g global 全域性作用域 b build in 內建作用域 2.legb是作什麼用的?為什麼非要介紹這個呢?或者說它們的作用是什麼?原因是因為我們的在學習python函式的時候,經常會遇到很多定...