Namespace

命名空間Namespace

Posted by 劉啟仲 on Friday, December 11, 2020

Python中的命名空間是一個字典 (dictionary) ,它的key就是變數名稱,它的值就是那些變數的值。

x = 2
def g():
 x = 4

Python中有很多命名空間:

  1. Built-in Namespace: 當直譯器啟動後就會產生,任何模塊都可以訪問他,存放著基本的函數,例如:print。

  2. Global Namespace: 全域命名空間,命名空間記錄了模塊中的變量

    在上方例子模塊中就記錄了

    { ‘x’:2, ‘g’: function object }

  3. Function Namespace: 區域命名空間,紀錄了函數的變量。

    在上方例子函式中就記錄了

    { ‘x’:4 }

Python LEGB:

  • L: local
  • E: enclosed
  • G: global
  • B: built-in