假设您有一个功能:
def divide(a, b):
return a / b
如果a
and b
are float
, int
, 或它们的组合,这显然会给出不同的结果。如果您只关心何时a
和b
是浮动的情况,那么处理这个问题的最佳方法是什么?
一世)
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
ii)
def divide(a, b):
return float(a) / float(b)
iii) 别的东西?
我的偏好是 ii),但一位同事认为,如果您在其他地方使用a
,b
那么 i) 更有可能防止错误。
这显然是一个微不足道的例子,但我的同事有更多的经验,C
我正在努力解释为什么 usingisinstance
并不真正适合鸭式打字,并且让它渗透到我们的 python 代码中并不是很好。