python中的全局變量與局部變量解讀
python中全局變量與局部變量
標(biāo)簽: python
- 局部變量就是定義在一個函數(shù)體內(nèi)部的變量
- 全局變量是定義在外面的變量
比如:
a = 1 def f(): b = 2
其中a
就是全局變量,而b
是局部變量。局部變量只在函數(shù)體內(nèi)部有效,出了函數(shù)體,外面是訪問不到的,而全局變量則對下面的代碼都有效。
在函數(shù)體內(nèi)部使用全局變量
全局變量可以直接在函數(shù)體內(nèi)容部使用的,你可以直接訪問,但是注意的是,如果對于不可變類型的數(shù)據(jù),如果在函數(shù)里面進(jìn)行了賦值操作,則對外面的全局變量不產(chǎn)生影響,因?yàn)橄喈?dāng)于新建了一個局部變量,只是名字和全局一樣,而對于可變類型,如果使用賦值語句,同樣對外部不產(chǎn)生影響,但是使用方法的話就會對外部產(chǎn)生影響。
如下面的代碼:
g_b = 3;g_l1 = [1,2];g_l2 = [1,2,3] def t1(): g_b = 2 g_l1 =[] g_l2.append(7) t1(g_b,g_l1,g_l2) print(g_b,g_l1,g_l2)
global關(guān)鍵字
上面說到,如果使用的是賦值語句,在函數(shù)內(nèi)部相當(dāng)于新建了一個變量,并且重新給了指向,但是有時(shí)候我們想把這個變量就是外部的那個全局變量,在賦值操作的時(shí)候,就是對全局變量給了重新的指向,這個時(shí)候可以通過global關(guān)鍵字表示我在函數(shù)里面的這個變量是使用的全局那個。
使用方法如下:
g_b = 3 def t1(): global g_b g_b = 2 t1() print(g_b)
這個時(shí)候你會發(fā)現(xiàn)全局變量g_b也重新指向了,這是因?yàn)?code>global gb表示指定了函數(shù)中的g_b
就是外面的那個。
python變量命名5大規(guī)則
Python變量名不是隨便亂起,需要遵循以下規(guī)則:
1、只能字母、下劃線開頭,不能數(shù)字開頭。變量用小寫字母開頭是 Python 的慣例,也是編碼的好習(xí)慣,大家要養(yǎng)成好習(xí)慣喲。
大家可以動手試試上面4個變量名哪個是正確的,嘗試打開編輯器定義變量輸出,看看有什么提示。
實(shí)際上面4個變量名,只有第一個變量名是正確的,后面3個都是錯誤的。如果運(yùn)行,將會有如下類似的錯誤提示:
2、變量名不能有空格,可以用下劃線;
3、Python內(nèi)置的關(guān)鍵字和函數(shù)不能用,比如說if、for、while、print、input等等;
4、變量名稱對大小寫敏感,比如:myname和myName不是同一個變量;
5、小寫字母l和大寫字母O盡量不要用于變量名,容易看成數(shù)字1和0 。
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
python如何使用python-docx調(diào)整Word文檔樣式
本文介紹了如何修改文字字體樣式、對齊樣式、行間距以及段前段后間距,并通過效果展示給出參考,適用于需要進(jìn)行文檔編輯的讀者2024-09-09Python實(shí)現(xiàn)PS圖像抽象畫風(fēng)效果的方法
這篇文章主要介紹了Python實(shí)現(xiàn)PS圖像抽象畫風(fēng)效果的方法,涉及Python基于skimage模塊進(jìn)行圖像處理的相關(guān)操作技巧,需要的朋友可以參考下2018-01-01在Python 3中實(shí)現(xiàn)類型檢查器的簡單方法
這篇文章主要介紹了在Python 3中實(shí)現(xiàn)類型檢查器的簡單方法,包括對函數(shù)注解這個新特性的介紹,需要的朋友可以參考下2015-07-07Python自動提取項(xiàng)目中導(dǎo)入的庫及其版本信息
在我們有時(shí)需要遷移或部署項(xiàng)目時(shí),需要知道項(xiàng)目所依賴的三方包和版本,本文就來介紹一下Python自動提取項(xiàng)目中導(dǎo)入的庫及其版本信息,具有一定的參考價(jià)值,感興趣的可以了解一下2024-03-03Django實(shí)現(xiàn)WebSSH操作物理機(jī)或虛擬機(jī)的方法
這篇文章主要介紹了Django實(shí)現(xiàn)WebSSH操作物理機(jī)或虛擬機(jī)的方法,非常不錯,具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-11-11