你可以這樣來理解,在做乙個大的專案,裡面有50個人在做,在這個公司,突然有個部分任務很急,公司的50個人也忙得不可開交,沒辦法,所以只能從外面請來了5個人來管理。
到最後,整個大的專案完成了,那5個人走了,原有的公司還是50人。只是在專案過程中的某一部分有55個人。
全域性變數就相當於,公司的55個人,而區域性變數了,就相當於是那5個人。
在發乙個**:你一看就知道是怎麼回事了:
def func(x):
print 'x is', x .......①:第一次列印的值
x = 2
print 'changed local x to', x ........②:第二次列印的值
x = 50
func(x)
print 'x is still', x ..........③:第三次列印的值
輸出 的結果是
①: x is 50
②:changed local x to 2
③:x is still 50
它如何工作
在函式中,我們第一次使用x的 值 的時候,python使用函式宣告的形參的值。
接下來,我們把值2賦給x。x是函式的區域性變數。所以,當我們在函式內改變x的值的時候,在
主塊中定義的x不受影響。
在最後乙個print語句中,我們證明了主塊中的x的值確實沒有受到影響。
使用global語句
如果你想要為乙個定義在函式外的變數賦值,那麼你就得告訴python這個變數名不是區域性的,
而是 全域性 的。我們使用global語句完成這一功能。沒有global語句,是不可能為定義在函式外
的變數賦值的。
你可以使用定義在函式外的變數的值(假設在函式內沒有同名的變數)。然而,我並不鼓勵你
這樣做,並且你應該盡量避免這樣做,因為這使得程式的讀者會不清楚這個變數是在**定義
的。使用global語句可以清楚地表明變數是在外面的塊定義的。
區域性變數與全域性變數
根據c語言的說法,區域性變數 定義在方法內部的變數叫區域性變數 全域性變數 定義在方法外部的變數叫全域性變數。區域性變數和全域性變數的主要區別在於二者的生存週期不同。全域性變數的生存週期 靜態分配記憶體,程式執行期間常駐記憶體,直到程式執行結束。區域性變數的生存週期 動態分配記憶體,位於執行緒堆疊中...
全域性變數與區域性變數
區域性變數 在區域性 塊內定義 作用域在區域性 塊內,生命週期在區域性 塊內,結束時銷毀。include void test int main return 0 輸出 1111111111 全域性變數 在所有 塊外定義 作用域是整個工程,生命週期程式開始至結束。工程test 10 10 原始檔sum...
區域性變數與全域性變數
資料的儲存型別 一 變數的作用域 變數的作用域是指變數有效性的範圍,與變數定義的位置密切相關,作用域是從空間這個角度來描述變數的,按照作用域的不同,變數可分為區域性變數和全域性變數。1 區域性變數 在函式 或 塊 內部定義的變數,也稱為內部變數,區域性變數只能在定義它的函式 或 塊 內使用,其他函式...