Problem dijamanta javlja se kada razred nasljeđuje od dva razreda koji dijele zajedničkog pretka, što stvara nejasnoću: ako oba srednja razreda nadjačaju metodu (ili drže polje), koju verziju dobiva donji razred?
Dijamant
A (defines greet())
/ \
B C (each may override greet())
\ /
D ← inherits from B and C: which greet()?
U Python-u (koji dozvoljava višestruko nasljeđivanje)
:
():
():
():
():
():
(B, C):
(D().greet())
(D.__mro__)
