class A:
def __init__ ( self ) :
print ( "Hello A:{}" .format ( self ) )
def somefunc( self ) :
print ( "A Something!" )
super ( ) .somefunc ( )
class B:
def __init__ ( self ) :
print ( "Hello B:{}" .format ( self ) )
def somefunc( self ) :
print ( "B Something!" )
try :
super ( ) .somefunc ( )
except AttributeError :
print ( "End of MRO chain" )
class C( A, B) :
pass
class D( B, A) :
pass
xx= C( )
xx.somefunc ( )
D( ) .somefunc ( )
Y2xhc3MgQToKICAgIGRlZiBfX2luaXRfXyhzZWxmKToKICAgICAgICBwcmludCgiSGVsbG8gQTp7fSIuZm9ybWF0KHNlbGYpKQoKICAgIGRlZiBzb21lZnVuYyhzZWxmKToKICAgICAgICBwcmludCgiQSBTb21ldGhpbmchIikKICAgICAgICBzdXBlcigpLnNvbWVmdW5jKCkKCmNsYXNzIEI6CiAgICBkZWYgX19pbml0X18oc2VsZik6CiAgICAgICAgcHJpbnQoIkhlbGxvIEI6e30iLmZvcm1hdChzZWxmKSkKCiAgICBkZWYgc29tZWZ1bmMoc2VsZik6CiAgICAgICAgcHJpbnQoIkIgU29tZXRoaW5nISIpCiAgICAgICAgdHJ5OgogICAgICAgICAgICBzdXBlcigpLnNvbWVmdW5jKCkKICAgICAgICBleGNlcHQgQXR0cmlidXRlRXJyb3I6CiAgICAgICAgICAgIHByaW50KCJFbmQgb2YgTVJPIGNoYWluIikKCmNsYXNzIEMoQSxCKToKICAgICBwYXNzCgpjbGFzcyBEKEIsQSk6CiAgICAgcGFzcwoKCnh4PUMoKQp4eC5zb21lZnVuYygpCkQoKS5zb21lZnVuYygp