新聞中心
在python中,所有的名字都存在一個空間中,它們在該空間中存在和被操作——這就是命名空間。它就像一個盒子,每一個變量名字都對應(yīng)裝著一個對象。當查詢變量的時候,會從該盒子里面找到相應(yīng)的對象。

創(chuàng)新互聯(lián)企業(yè)建站,10余年網(wǎng)站建設(shè)經(jīng)驗,專注于網(wǎng)站建設(shè)技術(shù),精于網(wǎng)頁設(shè)計,有多年建站和網(wǎng)站代運營經(jīng)驗,設(shè)計師為客戶打造網(wǎng)絡(luò)企業(yè)風格,提供周到的建站售前咨詢和貼心的售后服務(wù)。對于成都網(wǎng)站設(shè)計、網(wǎng)站制作、外貿(mào)營銷網(wǎng)站建設(shè)中不同領(lǐng)域進行深入了解和探索,創(chuàng)新互聯(lián)在網(wǎng)站建設(shè)中充分了解客戶行業(yè)的需求,以靈動的思維在網(wǎng)頁中充分展現(xiàn),通過對客戶行業(yè)精準市場調(diào)研,為客戶提供的解決方案。
【定義】
名稱到對象的映射。命名空間是一個字典的實現(xiàn),鍵為變量名,值是變量對應(yīng)的值。各個命名空間是獨立沒有關(guān)系的,一個命名空間中不能有重名,但是不同的命名空間可以重名而沒有任何影響。
相關(guān)推薦:《Python教程》
【分類】
python程序執(zhí)行期間會有2個或3個活動的命名空間(函數(shù)調(diào)用時有3個,函數(shù)調(diào)用結(jié)束后2個)。按照變量定義的位置,可以劃分為以下3類:
Local,局部命名空間,每個函數(shù)所擁有的命名空間,記錄了函數(shù)中定義的所有變量,包括函數(shù)的入?yún)?、?nèi)部定義的局部變量。
Global,全局命名空間,每個模塊加載執(zhí)行時創(chuàng)建的,記錄了模塊中定義的變量,包括模塊中定義的函數(shù)、類、其他導(dǎo)入的模塊、模塊級的變量與常量。
Built-in,python自帶的內(nèi)建命名空間,任何模塊均可以訪問,放著內(nèi)置的函數(shù)和異常。
【生命周期】
Local(局部命名空間)在函數(shù)被調(diào)用時才被創(chuàng)建,但函數(shù)返回結(jié)果或拋出異常時被刪除。(每一個遞歸函數(shù)都擁有自己的命名空間)。
Global(全局命名空間)在模塊被加載時創(chuàng)建,通常一直保留直到python解釋器退出。
Built-in(內(nèi)建命名空間)在python解釋器啟動時創(chuàng)建,一直保留直到解釋器退出。
各命名空間創(chuàng)建順序:python解釋器啟動 ->創(chuàng)建內(nèi)建命名空間 -> 加載模塊 -> 創(chuàng)建全局命名空間 ->函數(shù)被調(diào)用 ->創(chuàng)建局部命名空間
各命名空間銷毀順序:函數(shù)調(diào)用結(jié)束 -> 銷毀函數(shù)對應(yīng)的局部命名空間 -> python虛擬機(解釋器)退出 ->銷毀全局命名空間 ->銷毀內(nèi)建命名空間
python解釋器加載階段會創(chuàng)建出內(nèi)建命名空間、模塊的全局命名空間,局部命名空間是在運行階段函數(shù)被調(diào)用時動態(tài)創(chuàng)建出來的,函數(shù)調(diào)用結(jié)束動態(tài)的銷毀的。
新聞標題:創(chuàng)新互聯(lián)Python教程:python命名空間是什么
本文鏈接:http://fisionsoft.com.cn/article/djepidd.html


咨詢
建站咨詢
