Python中名稱空間是什麼?名稱空間生命週期是多久?
名稱空間是一個命名系統,用於確保名稱是唯一性,以避免命名衝突;而且在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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- C++基礎:什麼是名稱空間C++
- 你真的知道什麼是 Python「名稱空間」嗎?Python
- python名稱空間Python
- Python 名稱空間Python
- 名稱空間
- JAXB名稱空間及名稱空間字首處理
- Python 的名稱空間Python
- PHP 名稱空間PHP
- PHP名稱空間PHP
- vuex名稱空間Vue
- jQuery 名稱空間jQuery
- JavaScript 名稱空間JavaScript
- JavaScript 中的名稱空間JavaScript
- C++名稱空間C++
- 更改模型名稱空間模型
- 全域性名稱空間
- C++ 名稱空間C++
- facebook分享遊戲連結新增應用名稱空間是什麼遊戲
- facebook分享遊戲連結新增應用名稱空間是什麼?遊戲
- Python作用域和名稱空間Python
- Python名稱空間例項解析Python
- PHP 核心特性 - 名稱空間PHP
- Spring名稱空間解析Spring
- 使用名稱空間:基礎
- ros節點名稱空間ROS
- PHP名稱空間概念解析PHP
- JAXB玩轉名稱空間
- System.Web 名稱空間Web
- spring框架中的名稱空間Spring框架
- k8s中名稱空間的作用是什麼K8S
- System.Security.Cryptography 名稱空間
- c++系列:匿名名稱空間C++
- Objective-C 的名稱空間Object
- system.security.Principal名稱空間
- System.CodeDom 名稱空間
- System.Windows.Forms 名稱空間WindowsORM
- yaml檔案中在哪加名稱空間?YAML
- Python3 名稱空間和作用域Python