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