Python中的全局變量如何理解
Python是一種面向?qū)ο蟮拈_發(fā)語言,在函數(shù)中使用全局變量,一般應(yīng)作全局變量說明,只有在函數(shù)內(nèi)經(jīng)過說明的全局變量才能使用。
首先應(yīng)該說明的是需要盡量避免使用Python全局變量。不同的模塊都可以自由的訪問全局變量,可能會(huì)導(dǎo)致全局變量的不可預(yù)知性。對(duì)全局變量,如果程序員甲修改了_a的值,這時(shí)可能導(dǎo)致程序中的錯(cuò)誤。這種錯(cuò)誤是很難發(fā)現(xiàn)和更正的。
全局變量降低了函數(shù)或模塊之間的通用性,不同的函數(shù)或模塊都要依賴于全局變量。同樣,全局變量降低了代碼的可讀性,閱讀者可能并不知道調(diào)用的某個(gè)變量是全局變量。 但是某些時(shí)候,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ù)中使用該變量時(shí),需要事先聲明 global variable,否則系統(tǒng)將該變量視為局部變量。 CONSTANT = 0 (將全局變量大寫便于識(shí)別)
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)容擴(kuò)展:
什么是局部變量
通俗定義:函數(shù)內(nèi)部定義的變量就叫局部變量。
話不多說,代碼如下:
def test1(): a = 300 # 定義一個(gè)局部變量a,并初始化300 print('--test1--修改前:a=%s' % a) a = 200 # 給變量a重新賦值200 print('--test1--修改后:a=%s' % a)def test2(): a = 400 # 定義另一個(gè)局部變量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)部可以定義名字相同的變量,但它們不會(huì)產(chǎn)生影響。 局部變量的作用,為了臨時(shí)保存數(shù)據(jù)需要在需要在函數(shù)中定義變量來進(jìn)行存儲(chǔ)。到此這篇關(guān)于Python中的全局變量如何理解的文章就介紹到這了,更多相關(guān)Python中全局變量詳解內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. ASP.NET MVC實(shí)現(xiàn)城市或車型三級(jí)聯(lián)動(dòng)2. IntelliJ IDEA設(shè)置條件斷點(diǎn)的方法步驟3. IntelliJ IDEA導(dǎo)入jar包的方法4. SSM框架JSP使用Layui實(shí)現(xiàn)layer彈出層效果5. 一篇文章弄清楚Ajax請(qǐng)求的五個(gè)步驟6. Python利用百度地圖獲取兩地距離(附demo)7. ASP基礎(chǔ)入門第八篇(ASP內(nèi)建對(duì)象Application和Session)8. UTF8轉(zhuǎn)成GB2312亂碼問題解決方案9. java基于spring boot本地上傳圖片示例解析10. 刪除docker里建立容器的操作方法
