В python docs (да, у меня есть эта вещь с документами) говорится, что:
Пользовательские классы по умолчанию имеют методы
__cmp__()
и__hash__()
; с ними все объекты сравниваются неравномерно (кроме самих себя) иx.__hash__()
возвращаетid(x)
.
Но следующий код показывает другую вещь:
>>> class Test(object): pass
...
>>> t = Test()
>>>
>>> t.__hash__
<method-wrapper '__hash__' of Test object at 0x01F2B5D0>
>>>
>>> t.__cmp__
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'Test' object has no attribute '__cmp__'
>>>
Итак, где __cmp__
или что мне не хватает?