Python名称空间是什么?
名稱到對(duì)象的映射。命名空間是一個(gè)字典的實(shí)現(xiàn),鍵為變量名,值是變量對(duì)應(yīng)的值。各個(gè)命名空間是獨(dú)立沒有關(guān)系的,一個(gè)命名空間中不能有重名,但是不同的命名空間可以重名而沒有任何影響。
通俗講:名稱空間就是存放名字的地方,三種名稱空間,(之前遺留的問題x=1,1存放于內(nèi)存中,那名字x存放在哪里呢?名稱空間正是存放名字x與1綁定關(guān)系的地方)
一、名稱空間分類
1. 全局命名空間( Global):每個(gè)模塊加載執(zhí)行時(shí)創(chuàng)建的,記錄了模塊中定義的變量,包括模塊中定義的函數(shù)、類、其他導(dǎo)入的模塊、模塊級(jí)的變量與常量。
2. 局部命名空間(Local):每個(gè)函數(shù)所擁有的命名空間,記錄了函數(shù)中定義的所有變量,包括函數(shù)的入?yún)ⅰ?nèi)部定義的局部變量。
3. 內(nèi)置命名空間(Built-in):任何模塊均可以訪問,放著內(nèi)置的函數(shù)和異常(比如:input,print,str,list,tuple...)。
二、名稱空間的加載順序
內(nèi)置命名空間(程序運(yùn)行前加載)-->全局命名空間(程序運(yùn)行中:從上到下加載)-->局部命名空間(程序運(yùn)行中:調(diào)用時(shí)才加載)
三、名稱空間的取值順序
在局部調(diào)用:局部命名空間-->全局命名空間-->內(nèi)置命名空間?
在全局調(diào)用:全局命名空間-->內(nèi)置命名空間
綜上所述,在尋找變量時(shí),從小范圍,一層一層到大范圍去找尋。
轉(zhuǎn)載于:https://blog.51cto.com/12306609/2117578
總結(jié)
以上是生活随笔為你收集整理的Python名称空间是什么?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java——-反省机制(代码例子)-
- 下一篇: 功能式Python中的探索性数据分析