在Python中,出现以下错误:
UnboundLocalError: local variable 'total' referenced before assignment
在文件的开头(在错误来自的函数之前),我使用global关键字声明“总计”。然后,在程序主体中,在调用使用“总计”的函数之前,将其分配为0。我尝试在各个位置(包括文件顶部,在声明之后)将其设置为0。 ),但我无法使其正常工作。有人看到我在做什么错吗?
Answers:
我认为您错误地使用了“全局”。请参阅Python参考。您应该声明不带全局变量的变量,然后在要访问全局变量的函数内部声明它global yourvar。
#!/usr/bin/python
total
def checkTotal():
global total
total = 0
请参阅以下示例:
#!/usr/bin/env python
total = 0
def doA():
# not accessing global total
total = 10
def doB():
global total
total = total + 1
def checkTotal():
# global total - not required as global is required
# only for assignment - thanks for comment Greg
print total
def main():
doA()
doB()
checkTotal()
if __name__ == '__main__':
main()
因为doA()不修改全局总数,所以输出为1而不是11。
glob_val=None它赋一个值(我做了,亲爱的,我不能在没有赋值的情况下声明它
def inside():
global var
var = 'info'
inside()
print(var)
>>>'info'
问题结束
global。
我发现这个帖子的原因是我自己在自己的代码中有这个错误,而且我知道距发布该声明已经有一段时间了,您已经针对这种情况获得了一些答案和已解决的问题,但只想解释一下我如何解决以防万一可以帮助别人!基本上我最初以为是像使用REPL一样使用REPL.it进行代码编辑,就像为朋友制作东西一样,并且知道她无论如何都不想像代码编辑器那样下载,关键是我认为它不能无法处理代码,因为那时的复杂度在139点甚至更高,但是后来我开始试验并意识到,在我的函数集内,在a_loop函数内真正循环之外,该字母要注册,需要定义它!所以基本上我不是 在这种情况下,请务必在代码中定义计数功能!我将在这里分享我的代码,但是它像打印语句中的代码一样个人化,而且它的长度为2349行,是的,无论如何希望如此会有所帮助!如果可以的话,还建议您使用我可能会用到的一些代码,如果可以的话,可以将其放入更多脚本中,以使其更容易使用!再次希望对您有所帮助,如果您有任何疑问,请随时提出,我将尽我所能回答!我希望这有帮助!!!如果可以的话,将其添加到更多脚本中来!再次希望对您有所帮助,如果您有任何疑问,请随时提出,我将尽我所能回答!我希望这有帮助!!!如果可以的话,将其添加到更多脚本中来!再次希望对您有所帮助,如果您有任何疑问,请随时提出,我将尽我所能回答!我希望这有帮助!!!
-山姆