En Python 2.7, que definen un vacío de clases de nuevo estilo:Python: comparación predeterminado
In [43]: class C(object): pass
....:
continuación, crear una lista de casos de la nueva clase:
In [44]: c = [C() for i in xrange(10)]
después intenta ordenar la lista:
In [45]: sorted(c)
Out[45]:
[<__main__.C object at 0x1950a490>,
<__main__.C object at 0x1950a4d0>,
...
<__main__.C object at 0x1950aad0>]
lo que es sorprendente es que el tipo no se queja, a pesar de que no he definido una forma de comparar Instan ces de 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__']
¿Qué es exactamente que está ocurriendo allí, y ¿cuál es la razón para esto - podría decirse que es sorprendente - la conducta?
(+1) para el enlace y la cita. – NPE
+1, tenías toda la razón en tu comentario, me indujo a error la igualdad entre dos objetos y otro operador de comparación, gracias por descubrir mi error – mouad
Enlace actualizado http://docs.python.org/reference/expressions.html #no en –