డైమండ్ సమస్య ఒక తరగతి రెండు తరగతుల నుండి వారసత్వం పొందినప్పుడు ఉత్పన్నమవుతుంది అవి ఒక సాధారణ పూర్వీకుడిని పంచుకుంటే, అస్పష్టతను సృష్టిస్తుంది: రెండు మధ్య తరగతులు పద్ధతిని (లేదా ఒక ఫీల్డ్) ఓవర్రైడ్ చేస్తే, దిగువ తరగతికి ఏ సంస్కరణ లభిస్తుంది?
డైమండ్
A (defines greet())
/ \
B C (each may override greet())
\ /
D ← inherits from B and C: which greet()?
పైథాన్లో (ఇది బహుళ వారసత్వాన్ని అనుమతిస్తుంది)
:
():
():
():
():
():
(B, C):
(D().greet())
(D.__mro__)
