Python全局變量global關(guān)鍵字詳解
一般在函數(shù)體外定義的變量成為全局變量,在函數(shù)內(nèi)部定義的變量稱為局部變量。
全局變量所有作用域都可用,局部變量只能在本函數(shù)可用,變量的使用順序是,局部變量 > 全局變量, 也就是說:優(yōu)先使用局部變量
那么問題來了, 如果想在函數(shù)內(nèi)使用全局變量,或改變?nèi)肿兞康闹担?應(yīng)該怎么做呢?
Python全局變量global關(guān)鍵字為了解決函數(shù)內(nèi)使用全局變量的問題,python增加了global關(guān)鍵字, 利用它的特性, 可以指定變量的作用域。
Python全局變量global關(guān)鍵字的作用:聲明變量var是全局的
代碼實(shí)例
實(shí)例1:
函數(shù)優(yōu)先使用局部變量
str = ’global’def func1(): str = ’local’ print(str)func1()print(str)
結(jié)果:
local
global
實(shí)例2:
在沒有局部變量的情況下, 使用全局變量
str = ’global’def func1(): print(str)func1()print(str)
結(jié)果:
global
global
實(shí)例3:
改變?nèi)肿兞康闹担?通過實(shí)例1可以看到, 函數(shù)內(nèi)賦值并不能改變?nèi)肿兞康闹担孕枰猤lobal關(guān)鍵字
str = ’global’def func1(): global str str = ’local’ print(str)func1()print(str)
結(jié)果:
local
local
其他用法你可以使用同一個(gè)global語句指定多個(gè)全局變量。
例如
global var1, var2, var3
特殊類型
字符串、數(shù)字類型是不能被在局部被修改的,除非使用global關(guān)鍵字,但是 列表,字典是可修改,但不能重新賦值,如果需要重新賦值,需要在函數(shù)內(nèi)部使用global定義全局變量
代碼實(shí)例1:
list = [’global’, ’jb51.net’]def func1(): list.append(’www.jb51.net’) print(list)func1()print(list)
結(jié)果:
[’global’, ’jb51.net’, ’www.jb51.net’]
[’global’, ’jb51.net’, ’www.jb51.net’]
發(fā)現(xiàn)上面的list并沒有使用global但是值卻改變了, 說明列表是可以在局部被修改的
代碼實(shí)例2:
list = [’global’, ’jb51.net’]def func1(): list = [’docs.jb51.net’] print(list)func1()print(list)
結(jié)果:
[’docs.jb51.net’]
[’global’, ’jb51.net’]
局部變量賦值不能改變?nèi)肿兞康闹?/p>
代碼實(shí)例3:
list = [’global’, ’jb51.net’]def func1(): global list list = ’docs.jb51.net’ print(list)func1()print(list)
結(jié)果:
docs.jb51.net
docs.jb51.net
使用了global關(guān)鍵字后, 變量被重新賦值
本文主要講解了Python全局變量global關(guān)鍵字的使用方法,更多關(guān)于Python全局變量的使用請(qǐng)查看下面的相關(guān)鏈接
相關(guān)文章:
1. 在Android中使用WebSocket實(shí)現(xiàn)消息通信的方法詳解2. 淺談python出錯(cuò)時(shí)traceback的解讀3. ASP 信息提示函數(shù)并作返回或者轉(zhuǎn)向4. Python importlib動(dòng)態(tài)導(dǎo)入模塊實(shí)現(xiàn)代碼5. windows服務(wù)器使用IIS時(shí)thinkphp搜索中文無效問題6. 利用promise及參數(shù)解構(gòu)封裝ajax請(qǐng)求的方法7. python matplotlib:plt.scatter() 大小和顏色參數(shù)詳解8. .NET中l(wèi)ambda表達(dá)式合并問題及解決方法9. JSP數(shù)據(jù)交互實(shí)現(xiàn)過程解析10. Nginx+php配置文件及原理解析
