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

2021-06-23 02:53:17 字數 2082 閱讀 6489

當你在函式定義內宣告變數的時候,它們與函式外具有相同名稱的其他變數沒有任何關係,即變數名稱對於函式來說是 

區域性 的。這稱為變數的 

作用域 。所有變數的作用域是它們被定義的塊,從它們的名稱被定義的那點開始。例7.3 使用區域性變數

#!/usr/bin/python

# filename: func_local.py

deffunc(x):

print'x is', x

x =2

print'changed local x to', x

x =50

func(x)

print'x is still', x

(原始檔:code/func_local.py)

$ python func_local.py

x is 50

changed local x to 2

x is still 50

在函式中,我們第一次使用x的 值 的時候,python使用函式宣告的形參的值。

接下來,我們把值2賦給xx是函式的區域性變數。所以,當我們在函式內改變x的值的時候,在主塊中定義的x不受影響。

在最後乙個print語句中,我們證明了主塊中的x的值確實沒有受到影響。

如果你想要為乙個定義在函式外的變數賦值,那麼你就得告訴python這個變數名不是區域性的,而是 全域性 的。我們使用global語句完成這一功能。沒有global語句,是不可能為定義在函式外的變數賦值的。

你可以使用定義在函式外的變數的值(假設在函式內沒有同名的變數)。然而,我並不鼓勵你這樣做,並且你應該盡量避免這樣做,因為這使得程式的讀者會不清楚這個變數是在**定義的。使用global語句可以清楚地表明變數是在外面的塊定義的。

例7.4 使用global語句

#!/usr/bin/python

# filename: func_global.py

deffunc():

globalx

print'x is', x

x =2

print'changed local x to', x

x =50

func()

print'value of x is', x

(原始檔:code/func_global.py)

$ python func_global.py

x is 50

changed global x to 2

value of x is 2

global語句被用來宣告x是全域性的——因此,當我們在函式內把值賦給x的時候,這個變化也反映在我們在主塊中使用x的值的時候。

你可以使用同乙個global語句指定多個全域性變數。例如global x, y, z

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

name gongwei 要在函式裡修改全域性變數,需要用globle home earth china cq def change name home 地球 注意只有字串和單獨數值在區域性變數中修改全域性變數要用globle輔助,其他如列表 字典可以直接修改 global name name xu...

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

在python中全域性變數可以作用於所有域,而函式內部呼叫時會優先使用區域性變數,如果搜尋不到區域性變數就會在全域性中搜尋相同的變數 當然,以上並不意味著我們不能在函式內部使用全域性變數。python 的作用域規則是,變數的建立總是會建立乙個新的區域性變數但是變數的訪問 包括修改 在區域性作用域查詢...

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

主要內容 1.命名空間,區域性命名空間,全域性命名空間,作 域,載入順序.2.函式的巢狀 3.gloabal,nonlocal關鍵字 1.命名空間 也就是全域性和區域性 命名空間分類 1 全域性命名空間,py檔案內,函式外宣告的變數 2 區域性命名空間 在函式裡面宣告的變數 3 內建命名空間 pyt...