應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了_a的值,程式設計師乙同時也要使用_a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。
全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域性變數。同樣,全域性變數降低了**的可讀性,閱讀者可能並不知道呼叫的某個變數是全域性變數。
但是某些時候,全域性變數能夠解決區域性變數所難以解決的問題。事物要一分為二。
python裡面全域性變數有兩種靈活的用法:
1 宣告法
在檔案開頭宣告全域性變數variable,
在具體函式中使用該變數時,需要事先宣告 global variable,否則系統將該變數視為區域性變數。
constant = 0 (將全域性變數大寫便於識別)
def modifyconstant() :
global constant
print constant
constant += 1
return
if __name__ == '__main__' :
modifyconstant()
print constant
2模組法(推薦)
把全域性變數定義在乙個單獨的模組中:
#gl.py
gl_1 = 'hello'
gl_2 = 'world'
在其它模組中使用
#a.py
import gl
def hello_world()
print gl.gl_1, gl.gl_2
#b.py
import gl
def fun1()
gl.gl_1 = 'hello'
gl.gl_2 = 'world'
第二種方法,適用於不同檔案之間的變數共享,而且一定程度上避免了開頭所說的全域性變數的弊端,推薦!
python 模組及全域性變數
test sa.py coding utf 8 user defined parameters global a a 5def change a global a 模組內使用a,必須使用global變數 a 3 print local a str a def print a global a 模組內...
python 全域性變數
應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...
Python 全域性變數
應該盡量避免使用全域性變數。不同的模組都可以自由的訪問全域性變數,可能會導致全域性變數的不可預知性。對全域性變數,如果程式設計師甲修改了 a的值,程式設計師乙同時也要使用 a,這時可能導致程式中的錯誤。這種錯誤是很難發現和更正的。全域性變數降低了函式或模組之間的通用性,不同的函式或模組都要依賴於全域...