【发布时间】:2020-11-19 17:27:31
【问题描述】:
我有一些这样的代码:
var_1 = something_complicated("Look here")[0].text.split()[0]
var_2 = something_complicated("Look there")[0].text.split()[2:]
var_3 = something_complicated("Look up")[0].text.split()
var_4 = " ".join(something_complicated("Look down"))
var_5 = int(something_complicated("Don't Look here").split()[1])
除了更像 15 个变量。我想写一些会产生这种效果的东西:
try:
var_1 = something_complicated("Look here")[0].text.split()[0]
var_2 = something_complicated("Look there")[0].text.split()[2:]
var_3 = something_complicated("Look up")[0].text.split()
var_4 = " ".join(something_complicated("Look down"))
var_5 = int(something_complicated("Don't Look here").split()[1])
except IndexError, TypeError:
var_that_caused_error = ""
并且程序并没有退出,即使错误发生在 var_1 中,其余变量仍然会被填充
我现在能想到的解决方案是尝试/排除每一行,但这似乎是一场噩梦,而且也不遵循 DRY。有什么建议吗?
【问题讨论】:
-
您可以编写代码来检查引发这些异常的条件,如果它是重复的,您可以将其分解为一个或多个函数。
-
@DennisSparrow,你能举一个简短的例子来说明你的意思吗?
标签: python-3.x try-except