Дан код:
class Base: def __init__(self, x): self.x = x class Child(Base): def __init__(self, x, y): self.y = y # super().__init__ не вызывается c = Child(10, 20) print(c.y) print(c.x)
Что произойдёт при выполнении?
Выведет 20 и 10 — Python сам вызывает родительский __init__, если он не вызван явно
20
10
__init__
Выведет 20, затем упадёт с AttributeError — self.x не был установлен, так как super().__init__ не вызван
AttributeError
self.x
super().__init__
Выведет 20 и None — атрибуты, не прошедшие инициализацию, по умолчанию принимают значение None
None
Упадёт с TypeError при создании Child — подкласс обязан явно вызывать super().__init__
TypeError
Child