變量作用域
一般在函數(shù)體外定義的變量成為全局變量,在函數(shù)內(nèi)部定義的變量稱為局部變量。
全局變量所有作用域都可用,局部變量只能在本函數(shù)可用,變量的使用順序是,局部變量>全局變量,也就是說:優(yōu)先使用局部變量
那么問題來了,如果想在函數(shù)內(nèi)使用全局變量,或改變?nèi)肿兞康闹担瑧?yīng)該怎么做呢?
global關(guān)鍵字
為了解決函數(shù)內(nèi)使用全局變量的問題,python增加了global關(guān)鍵字,利用它的特性,可以指定變量的作用域。
global關(guān)鍵字的作用:聲明變量var是全局的
代碼實例
實例1:
函數(shù)優(yōu)先使用局部變量
str='global'
deffunc1():
str='local'
print(str)
func1()
print(str)
結(jié)果:
local
global
實例2:
在沒有局部變量的情況下,使用全局變量
str='global'
deffunc1():
print(str)
func1()
print(str)
結(jié)果:
global
global
實例3:
改變?nèi)肿兞康闹?,通過實例1可以看到,函數(shù)內(nèi)賦值并不能改變?nèi)肿兞康闹?,所以需要global關(guān)鍵字
str='global'
deffunc1():
globalstr
str='local'
print(str)
func1()
print(str)
結(jié)果:
local
local
其他用法
你可以使用同一個global語句指定多個全局變量。
例如
globalvar1,var2,var3
特殊類型
字符串、數(shù)字類型是不能被在局部被修改的,除非使用global關(guān)鍵字,但是列表,字典是可修改,但不能重新賦值,如果需要重新賦值,需要在函數(shù)內(nèi)部使用global定義全局變量
代碼實例1:
list=['global','pythontab.com']
deffunc1():
list.append('bbs.pythontab.com')
print(list)
func1()
print(list)
結(jié)果:
['global','pythontab.com','bbs.pythontab.com']
['global','pythontab.com','bbs.pythontab.com']
發(fā)現(xiàn)上面的list并沒有使用global但是值卻改變了,說明列表是可以在局部被修改的
代碼實例2:
list=['global','pythontab.com']
deffunc1():
list=['docs.pythontab.com']
print(list)
func1()
print(list)
結(jié)果:
['docs.pythontab.com']
['global','pythontab.com']
局部變量賦值不能改變?nèi)肿兞康闹?/p>
代碼實例3:
list=['global','pythontab.com']
deffunc1():
globallist
list='docs.pythontab.com'
print(list)
func1()
print(list)
結(jié)果:
docs.pythontab.com
docs.pythontab.com
使用了global關(guān)鍵字后,變量被重新賦值
以上內(nèi)容為大家介紹了Python關(guān)鍵字global全局變量詳解,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://m.2667701.com/