在Python3中,假设我遇到需要整数的情况。那么像这样做是否更快:
processed_number = int(round(float(some_input)))
还是我应该这样做:
if some_input is int:
processed_number = some_input
else:
processed_number = int(round(float(some_input)))
或者也许
try:
some_statement_taht_needs_int(some_input)
# except TypeError:
# processed_number = int(round(float(some_input)))
# some_statement_taht_needs_int(some_input)
# Apparently, it's better to cut down on exception handling: I might handle something the wrong way
except ValueError:
# The same thing
processed_number = int(round(float(some_input)))
some_statement_taht_needs_int(some_input)
如果我的问题很愚蠢,我很抱歉,因为两种方法都使用函数调用。我只是想知道每种方法之间是否存在显着的时间差异。我知道我不应该过于优化 Python 代码,但这只是一个我长期以来一直有的问题(可能很愚蠢)。如果这个问题很愚蠢,请不要责怪我。
目前我没有编写需要进行此优化的代码;这只是一个问题,以便我将来可以改进我的代码。
some_input
是int
类,则此代码正在测试输入是否为int
类... - ShadowRangertry
语句的范围,以避免意外地处理由于你无法预期和合理处理的问题引起的异常。 - ShadowRangerif isinstance(some_input, some_class):
和if type(some_input) is some_class
是两种不同的方式,对吗 @ShadowRanger?难道if some_input is some_class
也是另一种方式吗?我稍后会进行一些分析。 - theX