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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 什麼是名稱空間?
- 你真的知道什麼是 Python「名稱空間」嗎?Python
- python名稱空間Python
- 名稱空間
- Python名稱空間包Python
- 名稱空間,親和性,pod生命週期,健康檢查
- PHP名稱空間PHP
- PHP 名稱空間PHP
- 20200109 - 名稱空間
- vuex名稱空間Vue
- Python中名稱空間包簡介Python
- Python作用域和名稱空間Python
- 15-名稱空間
- 11. 名稱空間
- ts---名稱空間
- C++名稱空間C++
- 使用p名稱空間和c名稱空間的XML快捷方式XML
- spring框架中的名稱空間Spring框架
- ros節點名稱空間ROS
- PHP 核心特性 - 名稱空間PHP
- Kubernetes 名稱空間入門
- 3-1 名稱空間
- facebook分享遊戲連結新增應用名稱空間是什麼遊戲
- facebook分享遊戲連結新增應用名稱空間是什麼?遊戲
- Python3 名稱空間和作用域Python
- 深入講解Python名稱空間規則!Python
- System.Security.Cryptography 名稱空間
- c++系列:匿名名稱空間C++
- k8s中名稱空間的作用是什麼K8S
- yaml檔案中在哪加名稱空間?YAML
- 內聯和巢狀名稱空間巢狀
- PHP 物件導向 (三)名稱空間PHP物件
- OpenCV 名稱空間學習筆記OpenCV筆記
- php名稱空間的呼叫順序PHP
- 瞭解下C# 名稱空間(Namespace)C#namespace
- C++系列: 巢狀名稱空間C++巢狀
- PHP 獲取不帶名稱空間的類名PHP
- Kubernetes 的層級名稱空間介紹