Python中的全局變量如何理解
Python是一種面向?qū)ο蟮拈_發(fā)語言,在函數(shù)中使用全局變量,一般應(yīng)作全局變量說明,只有在函數(shù)內(nèi)經(jīng)過說明的全局變量才能使用。
首先應(yīng)該說明的是需要盡量避免使用Python全局變量。不同的模塊都可以自由的訪問全局變量,可能會導(dǎo)致全局變量的不可預(yù)知性。對全局變量,如果程序員甲修改了_a的值,這時可能導(dǎo)致程序中的錯誤。這種錯誤是很難發(fā)現(xiàn)和更正的。
全局變量降低了函數(shù)或模塊之間的通用性,不同的函數(shù)或模塊都要依賴于全局變量。同樣,全局變量降低了代碼的可讀性,閱讀者可能并不知道調(diào)用的某個變量是全局變量。 但是某些時候,Python全局變量能夠解決局部變量所難以解決的問題。事物要一分為二。
python里面全局變量有兩種靈活的用法:
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’def modifyConstant() : global CONSTANT print CONSTANT CONSTANT += 1 returnif __name__ == ’__main__’ : modifyConstant() print CONSTANT
1 聲明法
在文件開頭聲明Python全局變量variable, 在具體函數(shù)中使用該變量時,需要事先聲明 global variable,否則系統(tǒng)將該變量視為局部變量。 CONSTANT = 0 (將全局變量大寫便于識別)
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’def modifyConstant() : global CONSTANT print CONSTANT CONSTANT += 1 returnif __name__ == ’__main__’ : modifyConstant() print CONSTANT
內(nèi)容擴展:
什么是局部變量
通俗定義:函數(shù)內(nèi)部定義的變量就叫局部變量。
話不多說,代碼如下:
def test1(): a = 300 # 定義一個局部變量a,并初始化300 print('--test1--修改前:a=%s' % a) a = 200 # 給變量a重新賦值200 print('--test1--修改后:a=%s' % a)def test2(): a = 400 # 定義另一個局部變量a,并初始化400 print('--test2--修改后:a=%s' % a)# 分別調(diào)用函數(shù)test1,test2test1()test2()
輸出:
--test1--修改前:a=300--test1--修改后:a=200--test2--修改后:a=400
結(jié)論:
局部變量就是在函數(shù)內(nèi)部定義的變量。 不同的函數(shù)內(nèi)部可以定義名字相同的變量,但它們不會產(chǎn)生影響。 局部變量的作用,為了臨時保存數(shù)據(jù)需要在需要在函數(shù)中定義變量來進(jìn)行存儲。到此這篇關(guān)于Python中的全局變量如何理解的文章就介紹到這了,更多相關(guān)Python中全局變量詳解內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. Echarts通過dataset數(shù)據(jù)集實現(xiàn)創(chuàng)建單軸散點圖2. css進(jìn)階學(xué)習(xí) 選擇符3. Laravel操作session和cookie的教程詳解4. PHP字符串前后字符或空格刪除方法介紹5. 將properties文件的配置設(shè)置為整個Web應(yīng)用的全局變量實現(xiàn)方法6. jsp實現(xiàn)登錄界面7. html小技巧之td,div標(biāo)簽里內(nèi)容不換行8. 解析原生JS getComputedStyle9. 淺談SpringMVC jsp前臺獲取參數(shù)的方式 EL表達(dá)式10. XML入門的常見問題(一)
