python局部賦值的規(guī)則
myVar = 1
def myfunc():
myVar += 1
myfunc()
會提示錯誤:
UnboundlocalError: local variable 'myVar' referenced before assignment
Python提出如下假設(shè):如果在函數(shù)體內(nèi)的任何地方對變量賦值,則Python將名稱添加到局部命名空間中。
語句myVar += 1對名稱myVar賦值,則myVar是函數(shù)myfunc的局部命名空間的一部分,而它當(dāng)前沒有關(guān)聯(lián)值,所以會產(chǎn)生錯誤。
解決方法:使用global語句
myVar = 1
def myfunc():
global myVar
myVar += 1
myfunc()
附作用域搜索規(guī)則:
L:本地的(Local)
E:封閉的(Eclosing)
G:全局的(Global)
B:內(nèi)置的(Built-in)
相關(guān)文章
Python基于Socket實(shí)現(xiàn)簡單聊天室
這篇文章主要為大家詳細(xì)介紹了Python基于Socket實(shí)現(xiàn)簡單聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2020-02-02
python生成不重復(fù)隨機(jī)數(shù)和對list亂序的解決方法
下面小編就為大家分享一篇python生成不重復(fù)隨機(jī)數(shù)和對list亂序的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-04-04
python re的findall和finditer的區(qū)別詳解
這篇文章主要介紹了python re的findall和finditer的區(qū)別詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
python計算程序開始到程序結(jié)束的運(yùn)行時間和程序運(yùn)行的CPU時間
這篇文章主要介紹了python計算程序開始到程序結(jié)束的運(yùn)行時間和程序運(yùn)行的CPU時間的三個方法,大家參考使用2013-11-11
Python實(shí)現(xiàn)獲取網(wǎng)站或網(wǎng)頁的快照的示例代碼
本文主要介紹了Python實(shí)現(xiàn)獲取網(wǎng)站或網(wǎng)頁的快照的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-02-02
Python利用re模塊實(shí)現(xiàn)簡易分詞(tokenization)
分詞(tokenization)任務(wù)是Python字符串處理中最為常見任務(wù)了。本文將利用re模塊實(shí)現(xiàn)簡易tokenizer,文中的示例代碼講解詳細(xì),需要的可以參考一下2022-04-04

