怎樣來理解《全域性變數》與《區域性變數》

2021-06-22 17:08:40 字數 1021 閱讀 6364

你可以這樣來理解,在做乙個大的專案,裡面有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 區域性變數 在函式 或 塊 內部定義的變數,也稱為內部變數,區域性變數只能在定義它的函式 或 塊 內使用,其他函式...