PYthon報(bào)錯(cuò):UnboundLocalError: local variable 'xxx' referenced before assignment
level_b1 = 0
def diagnose_b1(moduleNode, symList, Graph):
level_b1 += 1
return level_b1
錯(cuò)誤提示:此段代碼執(zhí)行報(bào)錯(cuò)震贵,提示:UnboundLocalError: local variable 'level_b1' referenced before assignment崔慧,也就是說(shuō)level_b1變量在使用前沒(méi)有定義,但是我聲明了 全局變量了呀。
錯(cuò)誤原因:python的函數(shù)中的局部變量和全局變量同名時(shí),如果你在函數(shù)內(nèi)部對(duì)變量進(jìn)行賦值修改等操作,該變量就會(huì)被Python解釋器認(rèn)為是局部變量科平。在修改之前對(duì)該變量的引用自然就會(huì)出現(xiàn)沒(méi)定義這樣的錯(cuò)誤了。
解決方式:如果確定要引用全局變量姜性,并且要對(duì)它修改瞪慧,必須加上global關(guān)鍵字。??????
若是只讀就不用加此關(guān)鍵字部念。
level_b1 = 0
def diagnose_b1(moduleNode, symList, Graph):
global level_b1
level_b1 += 1
return level_b1