Python函數(shù)中的全局變量詳解
1、什么是全局變量?
在Python中,全局變量指的是可以作用于函數(shù)內(nèi)部和外部的變量。
在這里有兩種情況:在函數(shù)的外部定義和內(nèi)部定義添加global關(guān)鍵詞變成全局變量。
2、在函數(shù)外部定義的變量是全局變量。
假設(shè)一個變量在函數(shù)的外部定義,那么這個函數(shù)就可以在函數(shù)的內(nèi)部訪問,也可以在函數(shù)的外部的訪問。
示例:定義一個全局變量b,然后定義一個函數(shù)a,最后在該函數(shù)的內(nèi)部和外部輸出全局變量m的值,??代碼??如下:
b = '我愛Python,我在學(xué)習(xí)Python!' # 定義全局變量
def a(): # 定義函數(shù)
print('函數(shù)內(nèi)部全局變量b=',b) # 在函數(shù)內(nèi)部輸出全局變量
a()
print('函數(shù)外部全局變量b=',b) # 在函數(shù)外部輸出全局變量運(yùn)行結(jié)果如下:
函數(shù)內(nèi)部全局變量b= 我愛Python,我在學(xué)習(xí)Python! 函數(shù)外部全局變量b= 我愛Python,我在學(xué)習(xí)Python! >>>
3、在函數(shù)內(nèi)部定義中添加global關(guān)鍵詞后變成全局變量。
在Python中,內(nèi)部定義的函數(shù)中,添加關(guān)鍵詞global后,改變量就變成了全局變量。在函數(shù)的外部也可以訪問到該變量,同時還可以在函數(shù)的內(nèi)部進(jìn)行修改。
示例:定義相同名稱不同內(nèi)容的全局變量和局部變量b,并輸出它們的值:
b = '我愛Python,我在學(xué)習(xí)Python!' # 定義全局變量
print('函數(shù)外部全局變量b=',b) # 在函數(shù)外部輸出全局變量
def a(): # 定義函數(shù)
b = '人生苦短,我用Pyhon!' # 定義局部變量
print('函數(shù)內(nèi)部局部變量b=',b) # 在函數(shù)內(nèi)部輸出全局變量
a() # 調(diào)用函數(shù)
print('函數(shù)外部全局變量b=',b) # 在函數(shù)外部輸出全局變量
運(yùn)行結(jié)果如下:
函數(shù)外部全局變量b= 我愛Python,我在學(xué)習(xí)Python! 函數(shù)內(nèi)部局部變量b= 人生苦短,我用Pyhon! 函數(shù)外部全局變量b= 我愛Python,我在學(xué)習(xí)Python! >>>
從上面的結(jié)果可以看出,內(nèi)部變量(局部變量)可以和外部變量(全局變量)重名,不影響全局變量的值。
當(dāng)然在函數(shù)內(nèi)部變量前面添加關(guān)鍵字global,就變成了全局變量了,代碼如下:
b = '我愛Python,我在學(xué)習(xí)Python!' # 定義全局變量
print('函數(shù)外部全局變量b=',b) # 在函數(shù)外部輸出全局變量
def a(): # 定義函數(shù)
global b # 添加global關(guān)鍵字
b = '人生苦短,我用Pyhon!' # 定義局部變量
print('函數(shù)內(nèi)部全局變量b=',b) # 在函數(shù)內(nèi)部輸出全局變量
a() # 調(diào)用函數(shù)
print('函數(shù)外部全局變量b=',b) # 在函數(shù)外部輸出全局變量
運(yùn)行結(jié)果如下:
函數(shù)外部全局變量b= 我愛Python,我在學(xué)習(xí)Python! 函數(shù)內(nèi)部全局變量b= 人生苦短,我用Pyhon! 函數(shù)外部全局變量b= 人生苦短,我用Pyhon! >>>
從上面的結(jié)果可以看出,在函數(shù)的內(nèi)部也可以修改全局變量的值。
總結(jié)
到此這篇關(guān)于Python函數(shù)中的全局變量詳解的文章就介紹到這了,更多相關(guān)Python全局變量內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)的一個p2p文件傳輸實(shí)例
這篇文章主要介紹了python實(shí)現(xiàn)的一個p2p文件傳輸實(shí)例,文中用來解決多臺服務(wù)器維護(hù)文件同步問題,需要的朋友可以參考下2014-06-06
python實(shí)現(xiàn)的批量分析xml標(biāo)簽中各個類別個數(shù)功能示例
這篇文章主要介紹了python實(shí)現(xiàn)的批量分析xml標(biāo)簽中各個類別個數(shù)功能,涉及Python針對xml文件的遍歷、讀取、解析等相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
Python機(jī)器學(xué)習(xí)從ResNet到DenseNet示例詳解
ResNet極大地改變了如何參數(shù)化深層網(wǎng)絡(luò)中函數(shù)的觀點(diǎn)。稠密連接網(wǎng)絡(luò)(DenseNet)在某種程度上是ResNet的邏輯擴(kuò)展。讓我們先從數(shù)學(xué)上了解下2021-10-10
Python Celery異步任務(wù)隊(duì)列使用方法解析
這篇文章主要介紹了Python Celery異步任務(wù)隊(duì)列使用方法解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-08-08
python+mediapipe+opencv實(shí)現(xiàn)手部關(guān)鍵點(diǎn)檢測功能(手勢識別)
這篇文章主要介紹了python+mediapipe+opencv實(shí)現(xiàn)手部關(guān)鍵點(diǎn)檢測功能(手勢識別),本文僅僅簡單介紹了mediapipe的使用,而mediapipe提供了大量關(guān)于圖像識別等的方法,需要的朋友可以參考下2022-01-01

