2012-04-19 4 views

答えて

6

ない__cmpの__()の場合、__eq __()または__ne __()操作が定義され、クラス インスタンスは、オブジェクトアイデンティティ(「アドレス」)によって比較されます。

詳細については、object.__cmp__(self, other) in Pythonを参照してください。さらに参考文献Special (magic) methods in Pythonを得ることができます。

+0

どうもありがとう! :) – alicew

6

__str__が定義されていない場合、メモリアドレスを持つデフォルトの値が得られます。 <__main__.A object at 0x165aa90>

操作が定義されていない場合、クラスインスタンスはオブジェクトID、つまりメモリアドレス(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) 
+0

ありがとう、非常に感謝! – alicew

関連する問題