在Python中,global
關(guān)鍵字用于在函數(shù)內(nèi)部聲明全局變量。當(dāng)我們在函數(shù)內(nèi)部定義一個變量時,默認(rèn)情況下,該變量是局部變量,只在函數(shù)內(nèi)部有效,函數(shù)執(zhí)行完畢后該變量會被銷毀。但有時我們需要在函數(shù)內(nèi)部修改全局變量的值,這時就可以使用global
關(guān)鍵字。
使用global
關(guān)鍵字后,變量聲明為全局變量,即在函數(shù)內(nèi)外都可以訪問和修改該變量。例如:
x = 10
def func():
global x
x = 20
func()
print(x) # 輸出 20
在上面的例子中,我們在函數(shù)內(nèi)部使用global x
聲明了變量x
為全局變量,然后在函數(shù)內(nèi)修改了x
的值為20。之后,在函數(shù)外部打印x
的值時,得到的是20,表明x
的值在函數(shù)內(nèi)部成功被修改。
需要注意的是,如果在函數(shù)內(nèi)部沒有使用global
關(guān)鍵字聲明變量為全局變量,而直接修改了變量的值,Python會將其視為局部變量,而不是對全局變量進(jìn)行修改。例如:
x = 10
def func():
x = 20
func()
print(x) # 輸出 10
在上面的例子中,盡管函數(shù)內(nèi)部修改了x
的值為20,但由于沒有使用global
關(guān)鍵字聲明為全局變量,所以函數(shù)內(nèi)部的x
被視為局部變量,函數(shù)執(zhí)行完畢后被銷毀,全局變量x
的值仍然是10。