(herefor instancethe next class in the mro after is cwhich is followed by object whose __init__ silently accepts the call from and ends the chain thusb' method calls 'swhich ends in object' versioneven though is not superclass to reallythoughthis example is atypical--and perhaps even lucky in most casesno such suitable default will exist in objectand it may be less trivial to satisfy this model' expectations most trees will require an explicit--and possibly extra--superclass to serve the anchoring role that object does hereto accept but not forward the call other trees may require careful design to adhere to this requirement moreoverunless python optimizes it awaythe call to object (or other anchordefaults at the end of the chain may also add extra performance costs by contrastin such cases direct calls incur neither extra coding requirements nor added performance costand make dispatch more explicit and directclass bdef __init__(self)print(' __init__'class cdef __init__(self)print(' __init__'class (bc)def __init__(self) __init__(self) __init__(selfx ( __init__ __init__ scopean all-or-nothing model also keep in mind that traditional classes that were not written to use super in this role cannot be directly used in such cooperative dispatch treesas they will not forward calls along the mro chain it' possible to incorporate such classes with proxies that wrap the original object and add the requisite super callsbut this imposes both additional coding requirements and performance costs on the model given that there are many millions of lines of existing python code that do not use superthis seems major detriment watch what happensfor exampleif any one class fails to pass along the call chain by omitting superending the call chain prematurely--like __slots__super is generally an all-or-nothing featureclass bdef __init__(self)print(' __init__')super(__init__(class cdef __init__(self)print(' __init__')super(__init__(class (bc)def __init__(self)print(' __init__')super(__init__( ( __init__ __init__ advanced class topics