[英]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.