Python: __cmp__和__str__是什么?

4
如果您没有定义自己的__cmp____str__方法,会发生什么情况呢?
2个回答

6

6
没有定义__str__方法,你将得到默认的内存地址,例如:<__main__.A object at 0x165aa90>
如果没有定义__cmp__()方法,类实例将按对象标识即内存地址进行比较(文档)。
示例:
>>> 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)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接