Python關(guān)鍵字之global與nonlocal
Python關(guān)鍵字 global與nonlocal
global
def test(): #1函數(shù)內(nèi)如果沒定義x,則x默認(rèn)為全局變量 print(x) # 輸出 global v #2函數(shù)內(nèi)如果定義x,則x為局部變量 x = 'local v' # 局部變量 print(x) # 輸出 local v x = "global v" # 全局變量
如何在函數(shù)內(nèi)修改全局變量呢?[利用關(guān)鍵字global]
def test(): #在函數(shù)內(nèi)先聲明全局變量, global x # 即x = "global v",注意global修飾變量時(shí)不能直接賦值,如 global x =‘a(chǎn)bc' 報(bào)錯(cuò)! # 修改全局變量 x = 'modified global v' x = "global v" # 全局變量 print(x) # global v test() print(x) # modified global v
nonloacl
nonlocal只能在嵌套函數(shù)中使用,用于標(biāo)識嵌套函數(shù)中的變量是包含該嵌套函數(shù)的函數(shù)中的同名變量,在嵌套函數(shù)中修改變量會影響函數(shù)中的變量。
def func(): # 函數(shù) x = 'loval v' def ifunc(): # 嵌套函數(shù) nonlocal x # x = 'loval v'
如果在函數(shù)中使用global修飾了變量,那么在嵌套函數(shù)中用nonlocal修飾同名變量會發(fā)生報(bào)錯(cuò),因?yàn)閚onlocal表示該變量在函數(shù)中已經(jīng)定義,但檢查時(shí)因?yàn)橥兞勘籫lobal修飾為全局變量,所以不存在同名的局部變量,從而導(dǎo)致錯(cuò)誤
x = 'global v' # 全局變量 def func(): # 函數(shù) global x def ifunc(): # 嵌套函數(shù) nonlocal x # 報(bào)錯(cuò)??!
總結(jié)
本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
利用python?pywifi實(shí)現(xiàn)破解WiFi密碼
家里沒有怎么辦,只要你會Python,辦法總比困難多,本文就利用pywifi?這個(gè)庫實(shí)驗(yàn)一下如何破解Wi-Fi?密碼,注意,該方法僅可用來研究學(xué)習(xí)所用,需要的朋友可以參考下2024-03-03讓python的Cookie.py模塊支持冒號做key的方法
雖然Cookie的標(biāo)準(zhǔn)是不允許:冒號出現(xiàn)在key里面的,但是我們的開發(fā)人員是很可愛的,常常會讓我們意想不到。2010-12-12Python列表元組字典集合存儲結(jié)構(gòu)詳解
本文詳細(xì)介紹了Python中列表、元組、字典和集合等數(shù)據(jù)結(jié)構(gòu)的定義、操作和用法,包括數(shù)據(jù)類型的相互嵌套、常用操作方法、循環(huán)遍歷等2025-02-02Python 2種方法求某個(gè)范圍內(nèi)的所有素?cái)?shù)(質(zhì)數(shù))
這篇文章主要介紹了Python 2種方法求某個(gè)范圍內(nèi)的所有素?cái)?shù)(質(zhì)數(shù)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-01-01Caffe均值文件mean.binaryproto轉(zhuǎn)mean.npy的方法
今天小編就為大家分享一篇Caffe均值文件mean.binaryproto轉(zhuǎn)mean.npy的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07Python3時(shí)間轉(zhuǎn)換之時(shí)間戳轉(zhuǎn)換為指定格式的日期方法詳解
這篇文章主要介紹了Python3時(shí)間轉(zhuǎn)換之時(shí)間戳轉(zhuǎn)換為指定格式的日期,需要的朋友可以參考下2021-04-04Pydantic中model_validator的實(shí)現(xiàn)
本文主要介紹了Pydantic中model_validator的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-04-04Python數(shù)據(jù)分析中常見統(tǒng)計(jì)方法詳解
數(shù)據(jù)分析是現(xiàn)代社會中不可或缺的一部分,通過對數(shù)據(jù)的統(tǒng)計(jì)和分析,我們可以得出有用的信息和見解,本文將介紹在?Python?中常見的數(shù)據(jù)統(tǒng)計(jì)方法,希望對大家有所幫助2024-02-02python實(shí)現(xiàn)網(wǎng)站的模擬登錄
這篇文章主要介紹了python實(shí)現(xiàn)網(wǎng)站的模擬登錄的相關(guān)資料,通過自己構(gòu)造post數(shù)據(jù)來用Python實(shí)現(xiàn)登錄過程,需要的朋友可以參考下2016-01-01