如果您没有为__cmp__和__str__方法定义自己的方法,会发生什么情况
发布于 2012-04-19 13:22:40
如果未定义__cmp__()、__eq__()或__ne__()操作,则通过对象标识(“address”)比较类实例。
有关更多详细信息,请参阅object.__cmp__(self, other) in Python。您还可以获得更多的参考Special (magic) methods in Python。
发布于 2012-04-19 13:24:35
在没有定义__str__的情况下,您将获得带有内存地址的默认地址,例如<__main__.A object at 0x165aa90>。
如果未定义__cmp__()操作,则通过对象标识(即内存地址(docs) )比较类实例。
示例:
>>> class A(object):
... pass
...
>>> a = A()
>>> b = A()
>>> str(a)
'<__main__.A object at 0x7fcb1df8acd0>'
>>> hex(id(a))
'0x7fcb1df8acd0'
>>> a < b
False
>>> a > b
True
>>> id(a), id(b)
(140510357925072, 140510357925008)https://stackoverflow.com/questions/10222077
复制相似问题