Method Resolution Order (MRO) in classi di nuovo stile?

|

Nel libro Python in a Nutshell (2nd Edition) c'è un esempio che usa
classi vecchio stile per dimostrare come i metodi vengono risolti nell'ordine di risoluzione classico e
come è diverso con il nuovo ordine.

Ho provato lo stesso esempio riscrivendo l'esempio in un nuovo stile ma il risultato non è diverso da quello ottenuto con le classi vecchio stile. La versione python che sto usando per eseguire l'esempio è 2.5.2. Di seguito è riportato l'esempio:

class Base1(object): def amethod(self): print Classe "Base1" Base2(Base1): pass class Base3(object): def amethod(self): print Classe "Base3" Derivato(Base2,Base3): pass instance = Derived() instance.amethod() print Derived.__mro__ 

La chiamata instance.amethod() stampa Base1, ma secondo la mia comprensione dell'MRO con nuovo stile di classi l'output dovrebbe essere Base3. La chiamata Derived.__mro__ stampa:

(<class "__main__.Derived">, <class "__main__.Base2">, <class "__main__.Base1">, <class "__main__.Base3">, <digita "oggetto">)

Non sono sicuro di aver compreso l'MRO con new le classi di stile non sono corrette o che sto facendo un errore sciocco che non sono in grado di rilevare. Per favore aiutami a capire meglio l'MRO.

Shop

Learn programming in R: courses

$

Best Python online courses for 2022

$

Best laptop for Fortnite

$

Best laptop for Excel

$

Best laptop for Solidworks

$

Best laptop for Roblox

$

Best computer for crypto mining

$

Best laptop for Sims 4

$

Latest questions

NUMPYNUMPY

psycopg2: insert multiple rows with one query

12 answers

NUMPYNUMPY

How to convert Nonetype to int or string?

12 answers

NUMPYNUMPY

How to specify multiple return types using type-hints

12 answers

NUMPYNUMPY

Javascript Error: IPython is not defined in JupyterLab

12 answers

News


Wiki

Python OpenCV | cv2.putText () method

numpy.arctan2 () in Python

Python | os.path.realpath () method

Python OpenCV | cv2.circle () method

Python OpenCV cv2.cvtColor () method

Python - Move item to the end of the list

time.perf_counter () function in Python

Check if one list is a subset of another in Python

Python os.path.join () method