Python全局變量global關(guān)鍵字詳解
Python中的變量作用域
一般在函數(shù)體外定義的變量成為全局變量,在函數(shù)內(nèi)部定義的變量稱(chēng)為局部變量。
全局變量所有作用域都可用,局部變量只能在本函數(shù)可用,變量的使用順序是,局部變量 > 全局變量, 也就是說(shuō):優(yōu)先使用局部變量
那么問(wèn)題來(lái)了, 如果想在函數(shù)內(nèi)使用全局變量,或改變?nèi)肿兞康闹担?應(yīng)該怎么做呢?
Python全局變量global關(guān)鍵字
為了解決函數(shù)內(nèi)使用全局變量的問(wèn)題,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:
在沒(méi)有局部變量的情況下, 使用全局變量
str = 'global' def func1(): print(str) func1() print(str)
結(jié)果:
global
global
實(shí)例3:
改變?nèi)肿兞康闹担?通過(guò)實(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語(yǔ)句指定多個(gè)全局變量。
例如
global var1, var2, var3
特殊類(lèi)型
字符串、數(shù)字類(lèi)型是不能被在局部被修改的,除非使用global關(guān)鍵字,但是 列表,字典是可修改,但不能重新賦值,如果需要重新賦值,需要在函數(shù)內(nèi)部使用global定義全局變量
代碼實(shí)例1:
list = ['global', 'jb51.net'] def func1(): list.append('chabaoo.cn') print(list) func1() print(list)
結(jié)果:
['global', 'jb51.net', 'chabaoo.cn']
['global', 'jb51.net', 'chabaoo.cn']
發(fā)現(xiàn)上面的list并沒(méi)有使用global但是值卻改變了, 說(shuō)明列表是可以在局部被修改的
代碼實(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)文章
Pygame實(shí)戰(zhàn)練習(xí)之飛機(jī)大戰(zhàn)游戲
飛機(jī)大戰(zhàn)想必是很多人童年時(shí)期的經(jīng)典游戲,我們依舊能記得抱個(gè)老人機(jī)娛樂(lè)的場(chǎng)景,下面這篇文章主要給大家介紹了關(guān)于如何利用python寫(xiě)一個(gè)簡(jiǎn)單的飛機(jī)大戰(zhàn)小游戲的相關(guān)資料,需要的朋友可以參考下2021-09-09Pandas數(shù)據(jù)分析之批量拆分/合并Excel
怎樣將一個(gè)大的Excel拆分,或者將很多小Excel文件合并?下面這篇文章主要給大家介紹了關(guān)于Pandas數(shù)據(jù)分析之批量拆分/合并Excel的相關(guān)資料,需要的朋友可以參考下2021-09-09python爬不同圖片分別保存在不同文件夾中的實(shí)現(xiàn)
這篇文章主要介紹了python爬不同圖片分別保存在不同文件夾中的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python標(biāo)準(zhǔn)庫(kù)之Math,Random模塊使用詳解
math數(shù)學(xué)模塊和random隨機(jī)模塊是Python常用的標(biāo)準(zhǔn)庫(kù)之一。本文將詳細(xì)為大家介紹一下這兩個(gè)模塊的使用方法,需要的小伙伴可以參考一下2022-05-05Python連接Redis庫(kù)常見(jiàn)操作全面詳解
本文將介紹如何在Python中進(jìn)行Redis操作,包括連接Redis、數(shù)據(jù)存儲(chǔ)、數(shù)據(jù)檢索和其他常見(jiàn)操作,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11Python可變與不可變數(shù)據(jù)和深拷貝與淺拷貝
這篇文章主要介紹了Python可變與不可變數(shù)據(jù)和深拷貝與淺拷貝,拷貝函數(shù)是專(zhuān)門(mén)為可變數(shù)據(jù)類(lèi)型list、set、dict使用的一種函數(shù),更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-04-04Python讀取xlsx文件報(bào)錯(cuò):xlrd.biffh.XLRDError:?Excel?xlsx?file;no
這篇文章主要給大家介紹了關(guān)于Python庫(kù)xlrd中的xlrd.open_workbook()函數(shù)讀取xlsx文件報(bào)錯(cuò):xlrd.biffh.XLRDError:?Excel?xlsx?file;not?supported問(wèn)題解決的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08python環(huán)境的報(bào)錯(cuò)解決方法
這篇文章主要為大家介紹了python環(huán)境的報(bào)錯(cuò)解決方法,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-08-08