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的numpy庫下的幾個小函數(shù)的用法(小結(jié))
這篇文章主要介紹了Python的numpy庫下的幾個小函數(shù)的用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07詳解Python中數(shù)據(jù)庫管理模塊shelve和dbm的應(yīng)用
作為常用的 python 自帶數(shù)據(jù)庫管理模塊,shelve 和 dbm 都是非常方便的對象持久化存儲和檢索工具,本文將從用法、優(yōu)勢以及不同點等方面進(jìn)行介紹,希望對大家有所幫助2023-10-10Python-OpenCV實現(xiàn)圖像缺陷檢測的實例
本文將結(jié)合實例代碼,在Jupyter Notebook上使用Python+opencv實現(xiàn)如下圖像缺陷檢測。需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-06-06python自動化測試之DDT數(shù)據(jù)驅(qū)動的實現(xiàn)代碼
這篇文章主要介紹了python自動化測試之DDT數(shù)據(jù)驅(qū)動的實現(xiàn)代碼,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07Python數(shù)學(xué)建模PuLP庫線性規(guī)劃入門示例詳解
這篇文章主要為大家介紹了Python數(shù)學(xué)建模PuLP庫線性規(guī)劃入門示例詳解,想學(xué)習(xí)關(guān)于Python建模的同學(xué)可以學(xué)習(xí)參考下,希望能夠有所幫助2021-10-10