python类定义全局变量_python之全局变量
http://www.cnblogs.com/phoebus0501/archive/2011/01/18/1938728.html
應(yīng)該盡量避免使用全局變量, 因?yàn)?#xff1a;
1) 不同的模塊都可以自由的訪(fǎng)問(wèn)全局變量,可能會(huì)導(dǎo)致全局變量的不可預(yù)知性。
對(duì)全局變量,如果程序員甲修改了_a的值,程序員乙同時(shí)也要使用_a,這時(shí)可能導(dǎo)致程序中的錯(cuò)誤。這種錯(cuò)誤是很難發(fā)現(xiàn)和更正的。
2) 全局變量降低了函數(shù)或模塊之間的通用性,不同的函數(shù)或模塊都要依賴(lài)于全局變量。
同樣,全局變量降低了代碼的可讀性,閱讀者可能并不知道調(diào)用的某個(gè)變量是全局變量。
但是某些時(shí)候,全局變量能夠解決局部變量所難以解決的問(wèn)題。事物要一分為二。
python中全局變量的使用:
1 聲明法
1) 在文件開(kāi)頭聲明全局變量: VAR = 0 (將全局變量大寫(xiě)便于識(shí)別)
2) 在具體函數(shù)中使用該變量時(shí),需要事先聲明 global VAR, 否則系統(tǒng)將該變量視為局部變量。
VAR = 10 #聲明全局變量
def get_var() :
global VAR #聲明變量為global
print VAR,
VAR += 1
if __name__ == '__main__' :
for i in range(5):
get_var()
#Result: 10 11 12 13 14
2 模塊法(推薦)
1) 把全局變量定義在一個(gè)單獨(dú)的模塊中:
#global.py
GLOBAL_1 = 1
GLOBAL_2 = 2
GLOBAL_3 = 'Hello World'
2) 然后在另一個(gè)模塊中導(dǎo)入全局變量定義模塊,在新模塊中使用全局變量:
import globalValues
def printGlobal():
print(globalValues.GLOBAL_1)
print(globalValues.GLOBAL_3)
globalValues.GLOBAL_2 += 1 # modify values
if __name__ == '__main__':
printGlobal()
print(globalValues.GLOBAL_2)
第二種方法,適用于不同文件之間的變量共享,而且一定程度上避免了開(kāi)頭所說(shuō)的全局變量的弊端,推薦!
3. 使用類(lèi)變量
1) 定義全局變量為類(lèi)變量 var = 10:
2) 在類(lèi)方法中使用類(lèi)變量 self.var
class test_global():
var = 10 #聲明類(lèi)變量
def get_var(self): #定義類(lèi)方法,使用類(lèi)變量
print self.var,
self.var += 1
if __name__ == '__main__' :
obj = test_global()
for i in range(5):
obj.get_var()
#Result: 10 11 12 13 14
總結(jié)
以上是生活随笔為你收集整理的python类定义全局变量_python之全局变量的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java session使用_使用Neo
- 下一篇: python显示当前中文日期_pytho