python的命名空間

定義python

  名稱到對象的映射。命名空間是一個字典的實現,鍵爲變量名,值是變量對應的值。各個命名空間是對立沒有關係的,一個命名空間中不能有重名,可是不一樣的命名空間能夠重名且沒有任何影響。函數

 

分類:ui

  python程序執行期間會有2個或3個活動的命名空間(函數調用時有3個,函數調用結束後2個)。按照變量定義的位置,能夠劃分爲如下3類:對象

  Local局部命名空間,每一個函數所擁有的命名空間,記錄了函數中定義的全部變量,包含函數的入參、內部定義的局部變量。遞歸

  Global全局命名空間,每一個模塊加載執行時建立的,記錄了模塊中定義的變量,包括模塊中定義的函數、類、其餘導入的模塊、模塊級的變量和常量。生命週期

  Built-in:python自帶的內建命名空間,任何模塊都可以訪問,放着內置的函數和異常。虛擬機

 

生命週期:變量

  Local(局部命名空間):在函數被調用時才被建立,但函數返回結果或拋出異常時被刪除。(每個遞歸函數都擁有本身的命名空間)。命名空間

  Global(全局命名空間):在模塊被加載時建立,一般一直保留知道python解釋器退出。程序

  Built-in(內建命名空間):在python解釋器啓動時建立,一直保留直到解釋器退出。

 

  各命名空間建立順序:python解釋器啓動 -> 建立內建命名空間 -> 加載模塊 -> 建立全局命名空間 -> 函數被調用 -> 建立局部命名空間

  各命名空間銷燬順序:函數調用結束 -> 銷燬函數對應的局部命名空間 -> python虛擬機(解釋器)退出 -> 銷燬全局命名空間 ->銷燬內建命名空間

相關文章
相關標籤/搜索