Объявление класса MyClass, наследующего от класса a;
Объявление конструктора класса;
Вызов конструктора родительского класса.
С метаклассами никак не связано.
Благодарю. Оказывается вся эта конструкция не с проста.
К примеру :
class Cat():
def __init__(self):
self.hungry = True
def eat(self):
if self.hungry:
print('I am hangry...')
self.hangry = False
else:
print('No, thanks!')
class Barsik(Cat):
def __init__(self):
self.sound = 'Aaaammm!'
print(self.sound)
brs = Barsik()
>>>> Aaaammm!
brs.eat()
>>>> AttributeError: Barsik instance has no attribute 'hungry'
Не работает , тк конструктор базового класса не вызван
Исправить эту ситуацию можно банально вызвав этот контруктор в дите :
НО можно подключить super , который будет находить всю родню и на теперь доступно множетсвенное наследование.
class Barsik(Cat):
def __init__(self):
super(Barsik, self).__init__()
self.sound = 'Aaaammm!'
print self.sound
>>> brs = Barsik()
>>> brs.eat()
Aaaammm!
I am hangry...