【发布时间】:2019-05-08 15:49:55
【问题描述】:
我正在尝试编写一个将整数转换为浮点数的函数,并将布尔值和字符串保持原样。
我定义了以下函数:
def if_int_to_float(value):
if isinstance(value, bool):
return value
elif isinstance(value, int):
return float(value)
else:
return value
广泛使用时,我发现此功能有点慢。有什么想法可以提高其性能/使其更 Pythonic 吗?
【问题讨论】:
-
你说的慢是什么意思?
-
问题:为什么首先需要这个功能?这似乎是如果你需要一个浮点数,你可以在必要时转换到
float()。 -
您检查
bool,但如果是,您无需执行任何特殊操作,因此您可以删除它。 -
这段代码是作为一个更大程序的一部分运行的,在玩过 cProfile 之后,我发现这个函数调用消耗了很大一部分执行时间,即使它没有被调用太多。