Какие особенности есть у наследования в Python
Python
Middle
Без компании
Какие особенности есть у наследования в Python
Ответы
В Python наследование позволяет классу-потомку (child) наследовать атрибуты и методы класса-родителя (parent). Основные особенности:
- **Множественное наследование** - класс может наследовать от нескольких родителей. Порядок разрешения методов определяется алгоритмом MRO (Method Resolution Order).
```
class A:
def foo(self):
print("A")
class B:
def foo(self):
print("B")
class C(A, B):
pass
c = C()
c.foo() # Выведет "A" (первый родитель в списке)
```
- **Переопределение методов** - дочерний класс может переопределять методы родителя.
- **Доступ к родительским методам** через `super()`:
```
class Parent:
def __init__(self):
self.value = 5
class Child(Parent):
def __init__(self):
super().__init__()
self.value += 10
```
- **Динамическое наследование** - можно изменять родительские классы во время выполнения.
- **Абстрактные базовые классы** (ABC) позволяют определять интерфейсы, которые должны реализовывать потомки.
- **Mixin-классы** - специальный вид множественного наследования для добавления функциональности.