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