2012-04-19 6 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>.

Если не определена операция __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) 
+0

Спасибо, высоко ценим! – alicew

Смежные вопросы