Problem diamanta se pojavi, ko razred deduje od dveh razredov, ki imata skupnega prednika, kar ustvari negotovost: če oba vmesna razreda preglasita metodo (ali držita polje), katero različico dobi spodnji razred?
Diamant
A (defines greet())
/ \
B C (each may override greet())
\ /
D ← inherits from B and C: which greet()?
V Pythonu (ki omogoča večkratno dedovanje)
:
():
():
():
():
():
(B, C):
(D().greet())
(D.__mro__)
