Python中命名空間是什么?命名空間生命周期是多久?相信很多正在學(xué)習(xí)Python技術(shù)的同學(xué)對(duì)這個(gè)問題都比較好奇,尤其是零基礎(chǔ)學(xué)習(xí)Python技術(shù)的同學(xué),拉好小板凳,來看看下面的詳細(xì)介紹吧。
Python培訓(xùn)教程:Python中命名空間是什么?命名空間生命周期是多久?命名空間是一個(gè)命名系統(tǒng),用于確保名稱是唯一性,以避免命名沖突;而且在Python中,每個(gè)包、模塊、類、函數(shù)和方法函數(shù)都擁有一個(gè)命名空間,在該命名空間中解析變量名。
Python培訓(xùn)教程:Python中命名空間是什么?
命名空間是從名稱到對(duì)象的映射,大部分的命名空間都是通過Python字典來實(shí)現(xiàn)的。
命名空間提供了在項(xiàng)目中避免名字沖突的一種方法,各個(gè)命名空間是獨(dú)立的,沒有任何關(guān)系的,所以一個(gè)命名空間中不能有重名,但不同的命名空間是可以重名而沒有任何影響。
Python命名空間分類
Python程序執(zhí)行期間會(huì)有兩個(gè)或者三個(gè)活動(dòng)的命名空間,按照變量定義的位置,可以劃分為以下3類:
內(nèi)置名稱:built-in names,Python語言內(nèi)置的名稱,比如函數(shù)abs、char和異常名稱BaseException、Exception等。
全局名稱:global names,模塊中定義的名稱,記錄了模塊的變量,包括函數(shù)、類、其它導(dǎo)入的模塊、模塊級(jí)的變量和常量。
局部名稱:local names,函數(shù)中定義的名稱,記錄了函數(shù)的變量,包括函數(shù)的參數(shù)和局部定義的變量。
Python培訓(xùn)教程:Python命名空間生命周期
local names,在函數(shù)被調(diào)用時(shí)才被創(chuàng)建,但函數(shù)返回結(jié)果或拋出異常時(shí)被刪除。
global names,在模塊被加載時(shí)創(chuàng)建,通常一直保留,直到Python解釋器退出。
built-in names,在Python解釋器啟動(dòng)時(shí)創(chuàng)建,一直保留到解釋器退出。
各個(gè)命名空間創(chuàng)建順序:Python解釋器啟動(dòng)—創(chuàng)建內(nèi)建命名空間-加載模塊-創(chuàng)建全局命名空間-函數(shù)被調(diào)用-創(chuàng)建局部命名空間。
各個(gè)命名空間銷毀順序:函數(shù)調(diào)用結(jié)束-銷毀函數(shù)對(duì)應(yīng)的局部命名空間-Python解釋器退出-銷毀全局命名空間-銷毀內(nèi)建命名空間。
關(guān)于“Python中命名空間是什么?命名空間生命周期是多久?”的問題,上面小編已經(jīng)為大家做了詳細(xì)的介紹,同學(xué)們一定要做好筆記哦,如果您對(duì)Python技術(shù)非常感興趣,可以來了解一下千鋒教育提供的Python培訓(xùn)課程,千鋒教育在全國20多所城市均設(shè)有教學(xué)基地,歡迎同學(xué)們前來咨詢了解。