python中的作用域分4種情況:
L:local,局部作用域,即函數(shù)中定義的變量;
E:enclosing,嵌套的父級函數(shù)的局部作用域,即包含此函數(shù)的上級函數(shù)的局部作用域,但不是全局的;
G:globa,全局變量,就是模塊級別定義的變量;
B:built-in,系統(tǒng)固定模塊里面的變量,比如int,bytearray等。搜索變量的優(yōu)先級順序依次是:作用域局部>外層作用域>當(dāng)前模塊中的全局>python內(nèi)置作用域,也就是LEGB。
x=int(2.9)#intbuilt-in
g_count=0#global
defouter():
o_count=1#enclosing
definner():
i_count=2#local
print(o_count)
#print(i_count)找不到
inner()
outer()
#print(o_count)#找不到
當(dāng)然,local和enclosing是相對的,enclosing變量相對上層來說也是local。
以上內(nèi)容為大家介紹了python作用域介紹,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.fengjieshuijing.cn/