تنشأ مشكلة الماس عندما يرث فئة من فئتين تشتركان في سلف مشترك، مما يخلق غموضًا: إذا كانت كلا الفئتين الوسطيتين تتجاوزان دالة (أو تحتفظان بحقل)، فأي إصدار تحصل عليه الفئة السفلية؟
شكل الماس
A (defines greet())
/ \
B C (each may override greet())
\ /
D ← inherits from B and C: which greet()?
في Python (الذي يسمح بالوراثة المتعددة)
:
():
():
():
():
():
(B, C):
(D().greet())
(D.__mro__)
