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 return if __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 return if __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,test2 test1() 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)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python3+Appium實(shí)現(xiàn)多臺(tái)移動(dòng)設(shè)備操作的方法
這篇文章主要介紹了Python3+Appium實(shí)現(xiàn)多臺(tái)移動(dòng)設(shè)備操作的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07Python?Scrapy庫構(gòu)建基礎(chǔ)爬蟲
這篇文章主要為大家介紹了Python?Scrapy庫構(gòu)建基礎(chǔ)爬蟲示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08Python3爬蟲學(xué)習(xí)之爬蟲利器Beautiful Soup用法分析
這篇文章主要介紹了Python3爬蟲學(xué)習(xí)之爬蟲利器Beautiful Soup用法,結(jié)合實(shí)例形式分析了Beautiful Soup的功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2018-12-12python機(jī)器學(xué)習(xí)deepchecks庫訓(xùn)練檢查模型特點(diǎn)探索
這篇文章主要介紹了python機(jī)器學(xué)習(xí)deepchecks庫的訓(xùn)練檢查模型特點(diǎn)實(shí)例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01Python編程實(shí)現(xiàn)控制cmd命令行顯示顏色的方法示例
這篇文章主要介紹了Python編程實(shí)現(xiàn)控制cmd命令行顯示顏色的方法,結(jié)合實(shí)例形式分析了Python針對(duì)命令行字符串顯示顏色屬性相關(guān)操作技巧,需要的朋友可以參考下2017-08-08Python docx庫刪除復(fù)制paragraph及行高設(shè)置圖片插入示例
這篇文章主要為大家介紹了Python docx庫刪除復(fù)制paragraph及行高設(shè)置圖片插入操作實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-07-07Python編寫可視化界面的全過程(Python+PyCharm+PyQt)
這篇文章主要給大家介紹了關(guān)于Python編寫可視化界面的相關(guān)資料,主要使用了Python+PyCharm+PyQt,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2021-05-05