命名空間提供了在項目中避免名字沖突的壹種方法,各個命名空間是獨立的,沒有任何關系的,所以壹個命名空間中不能有重名,但不同的命名空間是可以重名而沒有任何影響。
Python命名空間分類
Python程序執行期間會有兩個或者三個活動的命名空間,按照變量定義的位置,可以劃分為以下3類:
內置名稱:built-in names,Python語言內置的名稱,比如函數abs、char和異常名稱BaseException、Exception等。
全局名稱:global names,模塊中定義的名稱,記錄了模塊的變量,包括函數、類、其它導入的模塊、模塊級的變量和常量。
局部名稱:local names,函數中定義的名稱,記錄了函數的變量,包括函數的參數和局部定義的變量。
Python命名空間生命周期
local names,在函數被調用時才被創建,但函數返回結果或拋出異常時被刪除。
global names,在模塊被加載時創建,通常壹直保留,直到Python解釋器退出。
built-in names,在Python解釋器啟動時創建,壹直保留到解釋器退出。
各個命名空間創建順序:Python解釋器啟動—創建內建命名空間-加載模塊-創建全局命名空間-函數被調用-創建局部命名空間。
各個命名空間銷毀順序:函數調用結束-銷毀函數對應的局部命名空間-Python解釋器退出-銷毀全局命名空間-銷毀內建命名空間。