當前位置:成語大全網 - 新華字典 - python命名空間是什麽

python命名空間是什麽

在Python中,所有的名字都存在壹個空間中,它們在該空間中存在和被操作——這就是命名空間。它就像壹個盒子,每壹個變量名字都對應裝著壹個對象。當查詢變量的時候,會從該盒子裏面找到相應的對象。

定義

名稱到對象的映射。命名空間是壹個字典的實現,鍵為變量名,值是變量對應的值。各個命名空間是獨立沒有關系的,壹個命名空間中不能有重名,但是不同的命名空間可以重名而沒有任何影響。

相關推薦:《Python教程》

分類

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

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

Global,全局命名空間,每個模塊加載執行時創建的,記錄了模塊中定義的變量,包括模塊中定義的函數、類、其他導入的模塊、模塊級的變量與常量。

Built-in,python自帶的內建命名空間,任何模塊均可以訪問,放著內置的函數和異常。

生命周期

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

Global(全局命名空間)在模塊被加載時創建,通常壹直保留直到python解釋器退出。

Built-in(內建命名空間)在python解釋器啟動時創建,壹直保留直到解釋器退出。

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

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

python解釋器加載階段會創建出內建命名空間、模塊的全局命名空間,局部命名空間是在運行階段函數被調用時動態創建出來的,函數調用結束動態的銷毀的。