熱線電話:13121318867

登錄
首頁精彩閱讀Python中的變量和作用域詳解
Python中的變量和作用域詳解
2018-05-08
收藏

Python中的變量和作用域詳解

python中的作用域分4種情況: L:local,局部作用域,即函數中定義的變量;

E:enclosing,嵌套的父級函數的局部作用域,即包含此函數的上級函數的局部作用域,但不是全局的;

G:globa,全局變量,就是模塊級別定義的變量; B:built-in,系統固定模塊里面的變量,比如int, bytearray等。 搜索變量的優先級順序依次是:作用域局部>外層作用域>當前模塊中的全局>python內置作用域,也就是LEGB。    
x = int(2.9) # int built-in
g_count = 0 # global
def outer():
o_count = 1 # enclosing
def inner():
i_count = 2 # local

當然,local和enclosing是相對的,enclosing變量相對上層來說也是local。    
#定義變量a
>>> a = 0
>>> print a
0
#定義函數p()
>>> def p():
... print a
...
>>> p()
0
#定義函數p2()
>>> def p2():
... print a
... a = 3
... print a
...
>>> p2() # 運行出錯,外部變量a先被引用,不能重新賦值
Traceback (most recent call last):
File "<interactive input>", line 1, in <module>
File "<interactive input>", line 2, in p2
UnboundLocalError: local variable 'a' referenced before assignment
#定義函數p3()
>>> def p3():
... a = 3 # 不引用直接賦值
... print a
...
>>> p3()
3
>>> print a
0 # 外部變量a并未改變
以上所述是小編給大家介紹的Python中的變量和作用域詳解,

數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢