2. Python. Вызвать функцию класса

Чтобы вызвать конструктор класса Parent без прямого вызова Parent.init() и без изменения поведения Parent, можно использовать функцию super() в классе Child.

Короткий ответ

Что ответить на собеседовании

Чтобы вызвать конструктор класса Parent без прямого вызова Parent.init() и без изменения поведения Parent, можно использовать функцию super() в классе Child.

Подробный разбор

Ответ с пояснениями

Условие

2. Python. Вызвать функцию класса

Описание:

Требуется реализовать вызов функции print 2x классов: Parent, Child.

При двух ограничениях: 1 - нельзя писать вызов Parent класса прямым текстом. 2 - нельзя менять поведение класса Parent

Можно менять поведения класса Child

Результат вывести на экран.

Входные данные:

class Parent:

def init(self):

print("Parent")

class Child(Parent):

def init(self):

print("Child")

Результат:

Parent

Child

Ответ

Чтобы вызвать конструктор класса Parent без прямого вызова Parent.init() и без изменения поведения Parent, можно использовать функцию super() в классе Child.

Пример решения:

class Parent:
    def __init__(self):
        print("Parent")

class Child(Parent):
    def __init__(self):
        super().__init__()  # вызов конструктора Parent без прямого упоминания Parent
        print("Child")

child = Child()

Вывод будет:

Parent
Child

Таким образом, мы не меняем класс Parent и не вызываем Parent напрямую, а используем super() для вызова родительского конструктора.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее