【发布时间】:2014-10-21 03:56:47
【问题描述】:
因此,以下内置类具有__eq__ 属性,(我假设)这就是您可以测试它们的实例是否相等的原因:
>>> 1.2.__eq__( 1.2 )
True
>>> 1.2 == 1.2
True
>>> 'hello'.__eq__( 'hi' )
False
>>> 'hello' == 'hi'
False
>>> [1,2].__eq__( [1,2] )
True
>>> [1,2] == [1,2]
True
然后我惊讶地发现int 对象没有__eq__,但我们仍然可以比较它们:
>>> hasattr( 1, '__eq__' )
False
>>> 1 == 2
False
发生了什么事?是不是我误解了__eq__和等号运算符的关系?
【问题讨论】:
标签: python python-2.7 operators equality