簡(jiǎn)單了解python關(guān)鍵字global nonlocal區(qū)別
第一,兩者的功能不同。global關(guān)鍵字修飾變量后標(biāo)識(shí)該變量是全局變量,對(duì)該變量進(jìn)行修改就是修改全局變量,而nonlocal關(guān)鍵字修飾變量后標(biāo)識(shí)該變量是上一級(jí)函數(shù)中的局部變量,如果上一級(jí)函數(shù)中不存在該局部變量,nonlocal位置會(huì)發(fā)生錯(cuò)誤(最上層的函數(shù)使用nonlocal修飾變量必定會(huì)報(bào)錯(cuò))。
第二,兩者使用的范圍不同。global關(guān)鍵字可以用在任何地方,包括最上層函數(shù)中和嵌套函數(shù)中,即使之前未定義該變量,global修飾后也可以直接使用,而nonlocal關(guān)鍵字只能用于嵌套函數(shù)中,并且外層函數(shù)中定義了相應(yīng)的局部變量,否則會(huì)發(fā)生錯(cuò)誤(見第一)。
正常的
a = 1 def func(): a = 10 print(a) func() print(a)
運(yùn)行結(jié)果:
10
1
使用global
a = 1 def func(): global a a = 10 print(a) func() print(a)
運(yùn)行結(jié)果:
10
10
使用nonlocal
a = 1 def func(): nonlocal a a = 10 print(a) func() print(a)
運(yùn)行結(jié)果:
10
0
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
python utc datetime轉(zhuǎn)換為時(shí)間戳的方法
今天小編就為大家分享一篇python utc datetime轉(zhuǎn)換為時(shí)間戳的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-01-01Python判斷兩個(gè)list是否是父子集關(guān)系的實(shí)例
今天小編就為大家分享一篇Python判斷兩個(gè)list是否是父子集關(guān)系的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-05-05Python實(shí)現(xiàn)制作銷售數(shù)據(jù)可視化看板詳解
在數(shù)據(jù)時(shí)代,銷售數(shù)據(jù)分析的重要性已無需贅言。只有對(duì)銷售數(shù)據(jù)的準(zhǔn)確分析我們才有可能找準(zhǔn)數(shù)據(jù)變動(dòng)的原因。本文將介紹用Python制作銷售數(shù)據(jù)大屏的方法。感興趣的可以關(guān)注一下2021-11-11Python實(shí)現(xiàn)的基于優(yōu)先等級(jí)分配糖果問題算法示例
這篇文章主要介紹了Python實(shí)現(xiàn)的基于優(yōu)先等級(jí)分配糖果問題算法,涉及Python針對(duì)列表的遍歷、判斷、計(jì)算等相關(guān)操作技巧,需要的朋友可以參考下2018-04-04keras.layers.Conv2D()函數(shù)參數(shù)用法及說明
這篇文章主要介紹了keras.layers.Conv2D()函數(shù)參數(shù)用法及說明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02python threading和multiprocessing模塊基本用法實(shí)例分析
這篇文章主要介紹了python threading和multiprocessing模塊基本用法,結(jié)合實(shí)例形式詳細(xì)分析了Python中threading和multiprocessing模塊基本概念、功能、使用方法及相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07Python利用Selenium實(shí)現(xiàn)彈出框的處理
經(jīng)常出現(xiàn)在網(wǎng)頁上的基于JavaScript實(shí)現(xiàn)的彈出框有三種,分別是?alert、confirm、prompt?。本文主要是學(xué)習(xí)如何利用selenium處理這三種彈出框,感興趣的可以了解一下2022-06-06Pytorch 解決自定義子Module .cuda() tensor失敗的問題
這篇文章主要介紹了Pytorch 解決自定義子Module .cuda() tensor失敗的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-06-06python實(shí)現(xiàn)郵件自動(dòng)發(fā)送
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)郵件自動(dòng)發(fā)送,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08