डायमण्ड समस्या तब उत्पन्न हुन्छ जब एक क्लास दुई क्लासबाट अधिकार प्राप्त गर्छ जसको साझा पूर्वज रहेको छ, जसले अस्पष्टता सिर्जना गर्छ: यदि दुवै मध्यम क्लासले मेथड ओभरराइड गर्छन् (वा फिल्ड राख्छन्), तब तल्लो क्लास कुन संस्करण पाउँछ?
डायमण्ड
A (defines greet())
/ \
B C (each may override greet())
\ /
D ← inherits from B and C: which greet()?
Python मा (जसले गुणन अधिकारलाई अनुमति दिन्छ)
:
():
():
():
():
():
(B, C):
(D().greet())
(D.__mro__)
