首頁 > 後端開發 > Python教學 > Python中的變數和作用域詳解

Python中的變數和作用域詳解

WBOY
發布: 2016-08-04 08:55:39
原創
1654 人瀏覽過

作用域介紹

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中的變數和作用域詳解,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對腳本之家網站的支持!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板