有没有一种方法可以使Python(3.6.3)在比较两个具有不同类型的对象时抛出错误?例如,我希望"2" == 2
抛出错误而不是返回False
。
天真地,我可以在条件中添加type(a) == type(b)
和a == b
,但我希望有一个更简单的解决方案。例如将==
替换为另一个符号。
在类似的上下文中,我喜欢在Python中比较str
和int
导致类型不匹配错误。例如,"2" >= 2
引发错误。但是我正在为相等性==
寻找相同的行为。
PS:我想我对这个问题的理解有些误解。确切地说,我正在寻找==
的简单替代方案,该替代方案会引发不同类型的错误;而不是广泛地覆盖==
的行为。
谢谢!
答案 0 :(得分:3)
这是一个相对简单的解决方案,但确实需要您编辑==
的所有现有用法。
更改此:
if a == b:
对此:
if isequal(a, b):
def isequal(a, b):
assert type(a) == type(b)
return a == b