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