В Python 2.7 я определяю пустой класс нового стиля:
In [43]: class C(object): pass
....:
, затем создаю список экземпляров нового класса:
In [44]: c = [C() for i in xrange(10)]
, затем пытаюсь отсортироватьlist:
In [45]: sorted(c)
Out[45]:
[<__main__.C object at 0x1950a490>,
<__main__.C object at 0x1950a4d0>,
...
<__main__.C object at 0x1950aad0>]
Что удивительно, так это то, что сортировка не вызывает жалоб, хотя я не определил способ сравнения экземпляров C
:
In [46]: dir(C())
Out[46]:
['__class__',
'__delattr__',
'__dict__',
'__doc__',
'__format__',
'__getattribute__',
'__hash__',
'__init__',
'__module__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'__weakref__']
Что именночто там происходит, и в чем причина этого - возможно, удивительного - поведения?