你在函式定義中宣告的變數,他們與在函式外使用的其它同名變數沒有任何關係,即變數名稱對函式來說是區域性的。這叫變數的範圍。所有變數都有它們被宣告的塊的範圍,從名稱定義的點開始。
區域性變數定義舉例:
x =
50def
func
(x):
print
('x等於'
, x)
x =2
print
('區域性變數x改變為'
, x)
func
(x)print
('x一直是'
, x)
輸出:x等於50
區域性變數x改變為2
x一直是50
它是如何工作的:
第一次,我們使用函式體中第一行列印變數x的值,python使用在主塊中,函式定義上宣告的實參。
接下來,我們給x賦值為2,變數為x對我們的函式來說是區域性變數,因此在函式中當我們改變x的值時,在主塊中定義的變數x不受影響。
最後呼叫的print函式,顯示在主塊中定義的變數x,因此證實,它不受在前面呼叫函式的區域性變數的影響。如果你想給在頂層的程式(即未在任何型別的範圍如函式或類之中)定義的變數賦值,那麼你必須告訴python,變數不是區域性的,而是全域性的。
我們使用global語句,沒有global語句賦值給乙個在函式外定義的變數是不可能的。
您可以使用這些在函式外定義的變數的值(假設在函式內沒有同名的變數)。然而,這並不鼓勵,應該避免,因為這使程式的讀者不清楚變數是在**定義的,使用 global 語句就非常清楚,變數定義在乙個最外的塊中。
使用全域性變數的例子:
x =
50def
func
():global x
print
('x的值是'
, x)
x =2
print
('全域性變數x改為'
, x)
func
()print
('x的值是'
, x)
輸出:x的值是50
全域性變數to改為2
x的值是2
它是如何工作的:
global語句用來宣告x是全域性變數,當我們在函式內給x賦值時,它的改變對映到我們在主塊中使用的x的值。
用同樣的global語句可以指定多個全域性變數,比如: global x, y, z。
python全域性變數和區域性變數
總體來說跟c 差不多 有一點不一樣的是,當乙個全域性變數在某一函式中出現了賦值之後,函式中使用的是相同名字的區域性變數,而全域性變數不受影響 如a 100 def f a 100 print a f 這裡,函式內部的變數名如果第一次出現,且出現在 前面,即被視為定義乙個區域性變數。而函式中的a是乙個...
python全域性變數和區域性變數
當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是 區域性 的。這稱為變數的 作用域 所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。使用區域性變數 usr bin python filename func local.py de...
Python全域性變數和區域性變數
定義在函式內部的變數擁有乙個區域性作用域,定義在函式外的擁有全域性作用域。區域性變數只能在其被宣告的函式內部訪問,而全域性變數可以在整個程式範圍內訪問。呼叫函式時,所有在函式內宣告的變數名稱都將被加入到作用域中。如下例項 total 0 這是乙個全域性變數 可寫函式說明 def sum arg1,a...