變數
變數起作用的範圍稱為變數的作用域,不同的作用域內同名變數之間互不影響。變數分為:全域性變數、區域性變數。
全域性變數:
在函式和類定義之外宣告的變數,作用域為定義的模組,從定義位置開始直到模組結束。
全域性變數降低了函式的通用性和可讀性,應盡量避免全域性變數的使用。
全域性變數一般做常量使用。
函式內要改變全域性變數的值,使用global宣告一下
區域性變數:
在函式體中(包含形式引數)宣告的變數
區域性變數的引用比全域性變數快,優先考慮使用區域性變數
如果區域性變數和全域性變數同名,則在函式內隱藏全域性變數,只使用同名的區域性變數。
全域性變數的作用域測試:
a=2020 #全域性變數
def one():
global a #如果在函式內改變全域性變數的值,使用global關鍵字宣告
print(a) #列印全域性變數a的值
a=20200528 #修改全域性變數的值
one()
print(a)
#執行返回
>>>2020
20200528
***在呼叫函式時,函式底層的變化。函式內部的變數將在棧中形成棧幀(也稱為startframe),幀只包含函式體中區域性變數(不包含全域性變數),在呼叫函式後,幀消失,再次呼叫函式時,在形成棧幀幀。
輸出區域性變數和全域性變數
a=100
def one(a,b,c):
print(a,b,c)
print(locals()) #列印輸出區域性變數
print("---->"*20)
print(globals()) #列印輸出全域性變數
one(11,22,33)
結果返回
有關全域性和區域性變數效率的測試
Python作用域 全域性作用域 區域性作用域
在python中,每個函式都會建立乙個作用域。pythonistas也可能稱函式擁有它們自己的命名空間 namespace 這意味著當在函式體裡遇到變數名 時,python首先在該函式的命名空間中查詢,python包含了一些讓我們檢視命名空間的函式。讓我們寫乙個簡單的函式來探查一下local和glo...
Python變數的作用域
python程式有各種各樣的命名空間,它指的是在該程式段內乙個特定的名稱是獨一無二的,它和其它同名的命名空間是無關的。在python中每乙個函式都有自己的命名空間,如果在函式體外部,也就是主程式範圍內定義乙個變數a,然後在函式體內也定義乙個變數a,那麼兩者指帶的是不同的變數。但是要知道的是場景總是多...
python 變數的作用域
變數的作用域 1.區域性作用域 local 每次呼叫函式時都會建立乙個區域性作用域。區域性作用域 函式 中定義的變數稱之為區域性變數。區域性變數的作用域為 從定義變數處開始到函式結束。函式呼叫結束後,其對應的區域性作用域中的所有變數都會被銷毀。2.巢狀作用域 enclosing 每次呼叫巢狀函式中的...