A past puzzle — fully playable. 4 attempts, hints on wrong guesses.
stdle-25.py
1classA:pass
2classB(A):pass
3classC(A):pass
4classD(B,C):pass
5print([k.__name__forkinD.__mro__])
Classes
Answer & explanation
Console output
['D', 'B', 'C', 'A', 'object']
Why
Python builds the Method Resolution Order with the C3 linearization algorithm. It keeps subclasses before their bases and preserves the left-to-right base order, so the shared base A appears only after both B and C, with object terminating the chain.