Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
В программировании на Python часто встречается ситуация, когда один класс наследует функциональность другого класса. Это называется наследованием и позволяет избегать дублирования кода.
Допустим, есть базовый класс Animal, который определяет общее поведение животных, и класс Dog, который наследует от Animal и, помимо общего поведения, имеет свои специфические методы и свойства.
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def __init__(self, name):
Animal.__init__(self, name)
def speak(self):
return "Woof!"
В этом примере, чтобы инициализировать класс Dog, мы явно вызываем инициализатор базового класса Animal.__init__.
Однако, Python предлагает более элегантный способ делать это с помощью функции super(). super() возвращает временный объект суперкласса, который позволяет вызывать его методы. Это особенно полезно в случае множественного наследования, так как он следует MRO (method resolution order), обеспечивая правильный порядок вызова методов.
class Animal:
def __init__(self, name):
self.name = name
def speak(self):
pass
class Dog(Animal):
def __init__(self, name):
super().__init__(name)
def speak(self):
return "Woof!"
Изучайте Python на онлайн-курсе от Skypro «Python-разработчик». Программа рассчитана на новичков без опыта программирования и технического образования. Курс проходит в формате записанных коротких видеолекций. Будет много проверочных заданий и мастер-классов. В конце каждой недели — живая встреча с экспертами в разработке для ответов на вопросы и разбора домашек.
В этом случае, super().__init__(name) делает то же самое, что и Animal.__init__(self, name), но делает код более читаемым и безопасным.
Таким образом, super() — это мощный инструмент, который позволяет сохранить принцип DRY (Don’t Repeat Yourself) и облегчает работу с наследованием.
Перейти в телеграм, чтобы получить результаты теста





Забрать
Добавить комментарий