Python中的命名空間是一個字典 (dictionary) ,它的key就是變數名稱,它的值就是那些變數的值。
x = 2
def g():
x = 4
Python中有很多命名空間:
-
Built-in Namespace: 當直譯器啟動後就會產生,任何模塊都可以訪問他,存放著基本的函數,例如:print。
-
Global Namespace: 全域命名空間,命名空間記錄了模塊中的變量
在上方例子模塊中就記錄了
{ ‘x’:2, ‘g’: function object }
-
Function Namespace: 區域命名空間,紀錄了函數的變量。
在上方例子函式中就記錄了
{ ‘x’:4 }
Python LEGB:
- L: local
- E: enclosed
- G: global
- B: built-in