Python 如何高效地编写多个try/except
我经常想尝试将值转换为int,如果无法转换,请将它们设置为某个默认值。例如:Python 如何高效地编写多个try/except,python,Python,我经常想尝试将值转换为int,如果无法转换,请将它们设置为某个默认值。例如: try: a = int(a) except: a = "Blank" try: b = int(b) except: b = "Blank" try: c = int(c) except: c = "Blank" 这可以用Python更有效地编写,而不必写下每一次尝试和例外吗?我只需要使用一个函数: def int_with_default(i): try:
try:
a = int(a)
except:
a = "Blank"
try:
b = int(b)
except:
b = "Blank"
try:
c = int(c)
except:
c = "Blank"
这可以用Python更有效地编写,而不必写下每一次尝试和例外吗?我只需要使用一个函数:
def int_with_default(i):
try:
return int(i)
except ValueError:
return "Blank"
a = int_with_default(a)
b = int_with_default(b)
c = int_with_default(c)
如果有必要,您可以添加第二个参数,告诉您如果不想每次都使用“Blank”,默认值应该是多少。我只需要使用一个函数:
def int_with_default(i):
try:
return int(i)
except ValueError:
return "Blank"
a = int_with_default(a)
b = int_with_default(b)
c = int_with_default(c)
如有必要,您可以添加第二个参数,告诉您如果不想每次都使用“Blank”,默认值应该是多少。为什么要使用downvote?为什么不使用一个函数来执行此操作,这样您就不需要重复自己的操作了?您甚至可以使用此函数获取多个值。我将把三个转换放在一个
try except
子句中,并使用类似except ValueError:
的内容。对每个异常使用,除了,这不是一个好习惯。@Alex实际上是这样的。“最佳实践”是在每个try
中使用最少的行数。如果它们都在同一个try
,您如何知道其中哪一个失败了?同意DeepSpace-同时您希望避免捕获任何您无法100%确定要捕获的错误,因此,最小化try/except块中的代码行数可以确保您只捕获最小行数上的错误。为什么要进行向下投票?为什么不使用一个函数来执行此操作,这样您就不需要重复自己的操作?您甚至可以使用此函数获取多个值。我将把三个转换放在一个try except
子句中,并使用类似except ValueError:
的内容。对每个异常使用,除了,这不是一个好习惯。@Alex实际上是这样的。“最佳实践”是在每个try
中使用最少的行数。如果它们都在同一个try
,您如何知道其中哪一个失败了?请同意DeepSpace-您还希望避免捕获任何您不100%确定要捕获的错误,因此最小化try/except块中的代码行数可确保只捕获最小行数上的错误。