This app works best with JavaScript enabled.
ZoeLiao
關於
筆記
Github
Medium
繁中
關於
筆記
Github
Medium
Programming, Studying and Traveling
python 的作用域、命名空間、LEGB 原則
August 14th 2019
作用域 Scope
作用域 (Scope):是名字 (name) 與實體 (entity) 的繫結 (binding) 保持有效的那部分電腦程式。在 python 中,只有在模塊 (Module)、類 (Class)、函式 (def) 定義的變量名才有作用域的概念。要創建、修改、查找一個變量名只在該作用域內生效。
如在一個函式中將 1 (entity) 賦值給 a (name),則我們查找 a 得到 1 這個繫結 (binding) 在該函式內有效,離開函式想要獲取 a 的值會報
NameError: name 'a' is not defined
。
命名空間 Namespaces
命名空間 (Namespaces):是標記 python 對象與特殊名字的字典,對象可為變量或函式。
Python 解析變量名的方法 - LEGB 原則
Python 作用域規則: 變量的引用依照 Local -> Enclosed -> Global -> Build-in 作用域的順序來查找。
Local:本地作用域
Enclosed:閉包作用域
Global: 全局作用域
Build-in:內建作用域,如 int
Reference
Data Structures and Algorithms with Python
, Chapter 2
wiki 作用域
wiki 命名空間
→ 返回首頁