¿Orden de resolución de métodos (MRO) en clases de nuevo estilo?

| | | | | |

En el libro Python in a Nutshell (2nd Edition) hay un ejemplo que usa
clases de estilo antiguo para demostrar cómo se resuelven los métodos en el orden de resolución clásico y
cómo es diferente con el nuevo orden.

Probé el mismo ejemplo reescribiendo el ejemplo en un estilo nuevo, pero el resultado no es diferente al que se obtuvo con las clases de estilo antiguo. La versión de Python que estoy usando para ejecutar el ejemplo es 2.5.2. A continuación se muestra el ejemplo:

class Base1(object): def amethod(self): print Clase "Base1" Base2(Base1): pasar clase Base3(objeto): def amethod(self): imprimir clase "Base3" Derivado(Base2,Base3): pasar instancia = Derivado() instancia.método() imprimir Derivado.__mro__ 

La llamada instance.amethod() imprime Base1, pero según mi comprensión del MRO con nuevo estilo de clases, la salida debería haber sido Base3. La llamada Derived.__mro__ imprime:

(<class "__main__.Derived">, <class "__main__.Base2">, <class "__main__.Base1">, <clase "__main__.Base3">, <escriba "objeto">)

No estoy seguro si mi comprensión de MRO con nuevos las clases de estilo son incorrectas o que estoy cometiendo un error tonto que no puedo detectar. Por favor, ayúdenme a comprender mejor MRO.