|
Come detto, in Python è possibile usare l'ereditarità multipla. La sintassi è la seguente:
class Multipla(Base1, Base2, Base3):
Quindi la nuova classe eredita i campi e i metodi dalle classi Base1, Base2 e Base3.
Il punto cruciale è come i campi e i metodi vengono ricercati nelle classi. La ricerca è "depth-first".
Ovvero se non si trovano i campi nella classe Base1, vengono cercati in una eventuale classe da cui deriva Base1, e così via. Una volta esaurita la ricerca nelle classi antenate di Base1, si procede alla ricerca nei campi di Base2 e così via.
Questo meccanismo può dare luogo a numerosi problemi e complica parecchio la comprensione e la gestione. Per questo motivo va usato con cautela e generalmente quando non ci sono soluzioni alternative all'uso dell'ereditarietà multipla.
|