看別人寫的程序在方法里面的變量前加了global關(guān)鍵字甜熔,之前沒(méi)接觸過(guò),遂學(xué)習(xí)記錄下這個(gè)知識(shí)點(diǎn)
- 變量作用域
先要明確作用域的概念筷频,定義在函數(shù)內(nèi)部的變量擁有一個(gè)局部作用域管宵,而定義在函數(shù)外的擁有全局作用域。
a = 5 # 這是一個(gè)全局變量
def hello():
a = 1 # a在這里是局部變量.
print("函數(shù)內(nèi)是局部變量 : ", a)
return a
hello()
print("函數(shù)外是全局變量 : ", a)
運(yùn)行結(jié)果
函數(shù)內(nèi)是局部變量 : 1
函數(shù)外是全局變量 : 5
- global關(guān)鍵字
如果想要在函數(shù)內(nèi)部用模塊定義的變量的話锚扎,就需要用到global關(guān)鍵字
a = 5
def hello():
global a
# 聲明告訴執(zhí)行引擎用的是全局變量a
a = 1
print('In test func: a = %d' % a)
hello()
print('Global a = %d' % a)
運(yùn)行結(jié)果:
In test func: a = 1
Global a = 1
可以看到函數(shù)里成功修改了全局變量a
參考資料
https://blog.csdn.net/diaoxuesong/article/details/42552943
http://www.runoob.com/python/python-functions.html