我正在写一个Fractions课程,虽然搞乱我注意到了这一点:
>>> class Test:
def __init__(self):
pass
>>> Test()>Test()
True
>>> Test()>Test()
False
为什么会这样?
答案 0 :(得分:3)
简单地说,你的比较不是直接在类的数据上,而是类本身的实例(id(Foo(1))),因为你没有明确地写它的比较。
它比较实例的id,因此有时它是真的,有时它是假的。
Foo(1)
=> <__main__.Foo instance at 0x2a5684>
Foo(1)
=> <__main__.Foo instance at 0x2a571c>
Foo(1)