[英]local variable 'statement' referenced before assignment
我目前正在python中创建一个while循环,但遇到了这个问题:
local variable 'statement' referenced before assignment
这是我的代码:
while (statement == True):
self.headNode = settings.EMPTY_UUID
try:
lastNode = Task.objects.get(next = self.headNode)
self.headNode = lastNode.id
statement = True
except:
statement = False
我担心如果在while语句之前初始化statement = True,因为它可能会变成无限循环
例如,这是Task.objects的数据:
id name next
001 task1 002
002 task2 003
003 task3 000
我想获取根任务的ID,该ID应该为001
注释已经为您指出了答案,但这是一种(更Pythonic的)编码方式:
while True:
self.headNode = settings.EMPTY_UUID
try:
lastNode = Task.objects.get(next=self.headNode)
self.headNode = lastNode.id
break
except Task.DoesNotExist:
break
即使您需要在while循环之后使用statement
的值,也不需要使用变量: statement
在那时显然为False
。
请注意,我还更改了except
语句。 我的假设是,您想捕获相关Task
对象不存在时引发的错误,但是,除了裸露的包罗万象之外,通常是不好的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.