日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python类定义全局变量_python之全局变量

發(fā)布時(shí)間:2024/9/30 python 60 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python类定义全局变量_python之全局变量 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。