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