我用IronPython(2.7.5)遇到了一个奇怪的现象。请查看以下示例代码:
class X(object):
def __eq__(self, other):
print "__eq__"
return False
def foo(self):
return 1
a = X()
print a.foo == a.foo
使用IronPython运行时输出为:
__eq__
False
我不明白为什么使用类X的相等运算符重载(a.foo具有类型instancemethod,而不是X)。
使用CPython时输出为
True
我猜这是IronPython中的一个错误。有人同意吗?