Diamantproblemet uppstår när en klass ärver från två klasser som delar en gemensam förfader, vilket skapar tvetydighet: om båda mellanliggande klasserna åsidosätter en metod (eller innehåller ett fält), vilken version får den nedersta klassen?
Diamanten
A (defines greet())
/ \
B C (each may override greet())
\ /
D ← inherits from B and C: which greet()?
I Python (som tillåter multipel arv)
:
():
():
():
():
():
(B, C):
(D().greet())
(D.__mro__)
