不,你不能.这些项目不相等,那里没有错误.
一般来说,强制您的代码只接受特定类型是非常规的.如果你想创建一个int的子类,并让它在int工作的地方工作怎么办? Python布尔类型是int的子类,例如(True == 1,False == 0).
如果您必须有例外,您可以执行以下两项操作之一:
>测试其类型的相等性并自己提出异常:
if not isinstance(a, type(b)) and not isinstance(b, type(a)):
raise TypeError('Not the same type')
if a == b:
# ...
这个例子允许a或b成为另一种类型的子类,你需要根据需要缩小它(类型(a)是类型(b)是超严格的).
>尝试订购类型:
if not a < b and not a > b:
# ...
在Python 3中,在将数字类型与序列类型(例如字符串)进行比较时会抛出异常.比较在Python 2中成功.
Python 3演示:
>>> a, b = 1, '1'
>>> not a < b and not a > b
Traceback (most recent call last):
File "", line 1, in
TypeError: unorderable types: int() < str()
>>> a, b = 1, 1
>>> not a < b and not a > b
True