Вопрос №24
Осталось:
Что такое наследование и как оно работает в Python?
Образцовый ответ
Показывать ответ по умолчанию
Наследование — это механизм ООП, при котором дочерний класс получает атрибуты и методы родительского класса.
Базовое наследование:
class Animal: def __init__(self, name): self.name = name def speak(self): return f"{self.name} издаёт звук" class Dog(Animal): def speak(self): return f"{self.name} говорит: Гав!" class Cat(Animal): def speak(self): return f"{self.name} говорит: Мяу!" dog = Dog("Бобик") print(dog.speak()) # Бобик говорит: Гав!
super() — вызов родительского метода:
class Animal: def __init__(self, name, age): self.name = name self.age = age class Dog(Animal): def __init__(self, name, age, breed): super().__init__(name, age) # Вызов __init__ родителя self.breed = breed dog = Dog("Бобик", 3, "Лабрадор") print(dog.name, dog.breed) # Бобик Лабрадор
Проверка наследования:
print(isinstance(dog, Dog)) # True print(isinstance(dog, Animal)) # True print(issubclass(Dog, Animal)) # True
Переопределение методов:
Дочерний класс может заменить или дополнить метод родителя:
class Shape: def area(self): return 0 class Rectangle(Shape): def __init__(self, width, height): self.width = width self.height = height def area(self): return self.width * self.height rect = Rectangle(5, 3) print(rect.area()) # 15
Множественное наследование:
Python поддерживает наследование от нескольких классов. Порядок поиска методов определяется алгоритмом MRO (Method Resolution Order), посмотреть его можно через ClassName.mro().
