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