Что знаешь о ООП в Python
Python
Junior
Без компании
Что знаешь о ООП в Python
Ответы
ООП в Python основано на четырёх ключевых принципах: инкапсуляции, наследовании, полиморфизме и абстракции.
**Инкапсуляция** – скрытие данных (атрибуты класса могут быть приватными `_` или защищёнными `__`).
**Наследование** – создание дочерних классов с переопределением или расширением родительских методов.
**Полиморфизм** – возможность использовать один интерфейс для разных типов (перегрузка методов, duck typing).
**Абстракция** – создание классов-шаблонов (например, через `abc.ABC`).
Пример:
```
class Animal:
def __init__(self, name):
self._name = name # защищённый атрибут
def speak(self):
raise NotImplementedError("Subclass must implement")
class Dog(Animal):
def speak(self):
return f"{self._name} says Woof!"
dog = Dog("Rex")
print(dog.speak()) # Rex says Woof!
```
Python поддерживает множественное наследование, миксины, магические методы (`__str__`, `__eq__`), декораторы свойств (`@property`) и другие возможности ООП.