gpt4 book ai didi

Pythonic isinstance on floats and ints

转载 作者:行者123 更新时间:2023-11-28 22:53:57 25 4
gpt4 key购买 nike

假设你有一个函数:

def divide(a, b):
return a / b

如果 abfloatint 或组合,这显然会给出不同的结果.如果您只关心 ab 是 float 的情况,那么处理这种情况的最佳方法是什么?

我)

def divide(a, b):
if not isinstance(a, float):
raise TypeError('a must be a float')
if not isinstance(b, float):
raise TypeError('b must be a float')
return a / b

二)

def divide(a, b):
return float(a) / float(b)

iii) 还有什么?

我更喜欢 ii),但一位同事认为,如果您在别处使用 ab,那么 i) 更有可能防止错误。

这显然是一个有点微不足道的例子,但我的同事对 C 有更多的经验,我正在努力解释为什么使用 isinstance 并不适合 duck -typing 并且让它渗透到我们的 python 代码中并不是很好。

最佳答案

另一种选择是

def divide(a, b):
return a * 1.0 / b

from __future__ import division

def divide(a, b):
return a / b

关于Pythonic isinstance on floats and ints,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18737832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com