__cmp__
メソッドとに対して独自のメソッドを定義しないとどうなり__str__
ますか?
2 に答える
6
__cmp__()、__eq__()、または __ne__() 操作が定義されていない場合、クラス インスタンスはオブジェクト ID (「アドレス」) によって比較されます。
詳細については、object.__cmp__(self, other) in Pythonを参照してください。さらに、 Python の特別な (魔法の) メソッドを参照できます。
于 2012-04-19T05:22:39.543 に答える
6
何も__str__
定義されていない場合、メモリ アドレスが<__main__.A object at 0x165aa90>
.
操作が定義されていない場合__cmp__()
、クラス インスタンスはオブジェクト 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)
于 2012-04-19T05:24:34.783 に答える