Jan-12-2020, 07:54 AM
Python uses C3 superclass linearization since version 2.3. This algorithm is described in many places. You can access the method resolution order directly with the mro() method
>>> D.mro() [<class '__main__.D'>, <class '__main__.B'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]