在python中使用函式體外的變數,可以使用global語句
變數可以是區域性域或者全域性域。定義在函式內的變數有區域性作用域,在乙個模組中最高端別的變數有全域性作用域。
在編譯器理論裡著名的「龍書」中,阿霍、賽西和烏爾曼作了如下總結:
「宣告適用的程式的範圍被稱為了宣告的作用域。在乙個過程中,如果名字在過程的宣告之內,它的出現即為過程的區域性變數;否則的話,出現即為非區域性」。
全域性變數的乙個特徵是除非被刪除掉,否則它們的存活到指令碼執行結束,且對所有函式,他們的值都能被訪問到,然而區域性變數,就像它們存放的棧,
暫時地存放,僅僅只依賴於定義它們的函式現階段是否處於活動。當乙個函式呼叫出現時,其區域性變數就進入宣告它們的作用域。
在那一刻,乙個新的區域性變數名為那個物件建立了,一旦函式完成,框架被釋放,變數將會離開作用域。
defchange_global():
global x #global語言
宣告x為全域性變數
global y #global語言
宣告y為全域性變數
Python全域性變數與global語句
如果將全域性變數的名字宣告在乙個函式體內的時候,全域性變數的名字能被區域性變數給覆蓋掉。code1 bar 100 def foo print ncalling foo bar 200 print in foo bar is bar print in main bar is bar foo prin...
python 全域性變數
應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...
Python 全域性變數
應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...