相关代码:
def return_t_done(queryList):
for item in list:
if item[0] == "t_done":
return int(item[1])
raise Error("Attempted to get t_done's value, yet no t_done exists")
所以基本上这段代码以
的形式通过嵌套列表运行[[spam,eggs],[ham,yum]]
并查找't_done'的字段([[field,value],[field,value]]),并在找到它时返回与该字段关联的值。应该总是有一个t_done字段,但万一没有(这是使用我没有编写的应用程序解析自动生成的日志文件,无法访问源代码,所以谁知道哪些可能出错)我我希望以最合适的方式优雅地提出例外。
那就是说,这对我来说似乎是最优雅的方式,但我并不是特别精通Python,而且我对文档的研究让我感到困惑。那么,我应该在try,except子句中包装for循环吗?我应该为这个错误写一个类吗?我应该提出异常而不是错误吗?写得好吗?
谢谢!
答案 0 :(得分:4)
你拥有它的方式很好。但另一种可能性是使用鲜为人知的else
原因进行for循环。当且仅当for循环成功完成时,才会对此进行评估。
for item in list:
if item[0] == "t_done":
return int(item[1])
else:
raise Error(...)
请注意缩进:其他与for
对齐,不是 if
。