У меня есть следующий фрагмент кода:
class A:
def __init__(self):
self._a = 1
class B:
def __init__(self):
self._b = 2
class C(A, B):
def __init__(self):
super(C, self).__init__()
self._c = 3
c = C()
Результирующий объект не имеет атрибута _b
, и фактически __init__()
B никогда не вызывается. Я ожидал, что __init__()
методы обоих родителей будут вызываться один за другим. Я ошибся? Я не нашел противоречивой информации.
(Я использую python 3.6)
__init__
должен бытьsuper
вызов, чтобы цепочка работала. - person tzaman   schedule 25.07.2019