Python中名稱空間是什麼?名稱空間生命週期是多久?

老男孩IT教育機構發表於2022-01-05

  名稱空間是一個命名系統,用於確保名稱是唯一性,以避免命名衝突;而且在Python中,每個包、模組、類、函式和方法函式都擁有一個名稱空間,在該名稱空間中解析變數名。那麼Python中名稱空間是什麼?相信很多人對此都不是很瞭解,小編特整理了這篇文章,希望能夠幫助到你們。

  Python中名稱空間是什麼?

  名稱空間是從名稱到物件的對映,大部分的名稱空間都是透過Python字典來實現的。

  名稱空間提供了在專案中避免名字衝突的一種方法,各個名稱空間是獨立的,沒有任何關係的,所以一個名稱空間中不能有重名,但不同的名稱空間是可以重名而沒有任何影響。

  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直譯器退出-銷燬全域性名稱空間-銷燬內建名稱空間。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69952527/viewspace-2850743/,如需轉載,請註明出處,否則將追究法律責任。

相關文章