使用旧样式类只需使用hasattr
作品:
>>> class old:
... pass
...
>>> hasattr(old, '__eq__')
False
使用新样式类,每个类都具有以下属性__eq__
:
>>> class nsc(object):
... pass
...
>>> hasattr(nsc, '__eq__')
True
这hasattr(object, '__eq__')
也是返回的预期行为True
。对于每种丰富的比较方法都是如此。
如果我不能使用,如何验证类是否实现了丰富的比较方法hasattr
?想到的一件事是调用该方法并查看它是否引发NotImplemented
异常。但是调用这些方法可能会产生意想不到的损害。