首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >__cmp__和__str__?

__cmp__和__str__?
EN

Stack Overflow用户
提问于 2012-04-19 13:18:16
回答 2查看 418关注 0票数 4

如果您没有为__cmp____str__方法定义自己的方法,会发生什么情况

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-19 13:22:40

如果未定义__cmp__()、__eq__()或__ne__()操作,则通过对象标识(“address”)比较类实例。

有关更多详细信息,请参阅object.__cmp__(self, other) in Python。您还可以获得更多的参考Special (magic) methods in Python

票数 6
EN

Stack Overflow用户

发布于 2012-04-19 13:24:35

在没有定义__str__的情况下,您将获得带有内存地址的默认地址,例如<__main__.A object at 0x165aa90>

如果未定义__cmp__()操作,则通过对象标识(即内存地址(docs) )比较类实例。

示例:

代码语言:javascript
复制
>>> 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)
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10222077

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档