命名空間是從名稱到對(duì)象的映射,大部分的命名空間都是通過(guò) Python 字典來(lái)實(shí)現(xiàn)的
成都創(chuàng)新互聯(lián)專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站制作、成都網(wǎng)站建設(shè)、連城網(wǎng)絡(luò)推廣、微信小程序、連城網(wǎng)絡(luò)營(yíng)銷、連城企業(yè)策劃、連城品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營(yíng)等,從售前售中售后,我們都將竭誠(chéng)為您服務(wù),您的肯定,是我們最大的嘉獎(jiǎng);成都創(chuàng)新互聯(lián)為所有大學(xué)生創(chuàng)業(yè)者提供連城建站搭建服務(wù),24小時(shí)服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
命名空間查找順序:局部命名空間、全局命名空間、內(nèi)置命名空間
相同的對(duì)象名稱可以存在于多個(gè)命名空間中
作用域就是一個(gè)可以直接訪問(wèn)命名空間的正文區(qū)域。程序的變量并不是在哪個(gè)位置都可以訪問(wèn)的,訪問(wèn)權(quán)限決定于這個(gè)變量是在哪里賦值的。變量的作用域決定了在哪一部分程序可以訪問(wèn)哪個(gè)特定的變量名稱。python的作用域共有四種:
L(Local):最內(nèi)層,包含局部變量,比如一個(gè)函數(shù)/方法內(nèi)部
E(Enclosing):包含了非局部也非全局的變量。比如兩個(gè)嵌套函數(shù)中間的變量
G(Global):當(dāng)前腳本的最外層,比如當(dāng)前模塊的全局變量
B(Built-in):包含了內(nèi)建的變量/關(guān)鍵字等,最后被搜索(通過(guò)builtins標(biāo)準(zhǔn)模塊實(shí)現(xiàn),要先導(dǎo)入)
規(guī)則順序:L、E、G、B
python中只有模塊、類、函數(shù)才會(huì)引入新的作用域,其它的代碼塊(如 if/elif/else/、try/except、for/while等)不會(huì)引入新的作用域,這些語(yǔ)句內(nèi)定義的變量,外部也可以訪問(wèn)
例如:
def aFunction(): a= 1 return a print(a)