名稱(chēng)到對(duì)象的映射。命名空間是一個(gè)字典的實(shí)現(xiàn),鍵為變量名,值是變量對(duì)應(yīng)的值。各個(gè)命名空間是獨(dú)立沒(méi)有關(guān)系的,一個(gè)命名空間中不能有重名,但是不同的命名空間可以重名而沒(méi)有任何影響。
通俗講:名稱(chēng)空間就是存放名字的地方,三種名稱(chēng)空間,(之前遺留的問(wèn)題x=1,1存放于內(nèi)存中,那名字x存放在哪里呢?名稱(chēng)空間正是存放名字x與1綁定關(guān)系的地方)
一、名稱(chēng)空間分類(lèi)
1.全局命名空間(Global):每個(gè)模塊加載執(zhí)行時(shí)創(chuàng)建的,記錄了模塊中定義的變量,包括模塊中定義的函數(shù)、類(lèi)、其他導(dǎo)入的模塊、模塊級(jí)的變量與常量。
2.局部命名空間(Local):每個(gè)函數(shù)所擁有的命名空間,記錄了函數(shù)中定義的所有變量,包括函數(shù)的入?yún)?、?nèi)部定義的局部變量。
3.內(nèi)置命名空間(Built-in):任何模塊均可以訪問(wèn),放著內(nèi)置的函數(shù)和異常(比如:input,print,str,list,tuple...)。
二、名稱(chēng)空間的加載順序
內(nèi)置命名空間(程序運(yùn)行前加載)-->全局命名空間(程序運(yùn)行中:從上到下加載)-->局部命名空間(程序運(yùn)行中:調(diào)用時(shí)才加載)
三、名稱(chēng)空間的取值順序
在局部調(diào)用:局部命名空間-->全局命名空間-->內(nèi)置命名空間
在全局調(diào)用:全局命名空間-->內(nèi)置命名空間
綜上所述,在尋找變量時(shí),從小范圍,一層一層到大范圍去找尋。
以上內(nèi)容為大家介紹了Python名稱(chēng)空間規(guī)則,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。