python的全域性變數和區域性變數

2021-07-05 02:11:00 字數 1275 閱讀 6442

你在函式定義中宣告的變數,他們與在函式外使用的其它同名變數沒有任何關係,即變數名稱對函式來說是區域性的。這叫變數的範圍。所有變數都有它們被宣告的塊的範圍,從名稱定義的點開始。

區域性變數定義舉例:

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...