Возможно ли при наследовании методы объединять, а не заменять?
Например есть родительский класс и дочерний, который наследуется от него
class Parent():
def test(self):
print('inside parent')
class Child(Parent):
def test(self):
print('inside child')
при вызове метода экземпляра дочернего класса с тем же названием вызывается функция из дочернего класса, перезаписывая родительскую
>>> b1 = Child()
>>> b1.test()
inside child
>>>
Вопрос: можно ли сделать так чтобы дочерний метод не перезаписывал родительский, а добавлялся к нему и они выполнялись бы вместе и поочередно (сначала родительский потом дочерний)? Чтобы получилось вот так:
>>> b1.test()
inside parent
inside child
>>>
Ответы (1 шт):
Автор решения: Павел
→ Ссылка
Для этого можно вызвать функцию в родительском классе при помощи super().
class Parent:
def test(self):
print('inside parent')
class Child(Parent):
def test(self):
super().test()
print('inside child')
b1 = Child()
b1.test()
Вывод:
inside parent
inside child
Подробнее про функцию super() можете почитать в документации.