Дан родительский класс и дочерний, который наследуется от него
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
>>>
Ответ
Для этого можно вызвать функцию в родительском классе при помощи
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()
можете почитать в документации.#junior
@python_job_interview