Какие знаешь инструменты для создания абстрактного класса в Python
Python
Middle
Рунити
Какие знаешь инструменты для создания абстрактного класса в Python
Ответы
В Python можно создать абстрактный класс с помощью модуля `abc` (Abstract Base Classes). Основные инструменты:
- **`ABC`** – базовый класс для создания абстрактных классов.
- **`@abstractmethod`** – декоратор для обозначения абстрактных методов.
Пример:
```
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def make_sound(self):
pass
class Dog(Animal):
def make_sound(self):
return "Woof!"
# Попытка создать экземпляр без реализации метода вызовет TypeError
# animal = Animal() # Ошибка!
dog = Dog() # OK
print(dog.make_sound()) # Выведет: Woof!
```
**Нюансы:**
- Нельзя создать экземпляр абстрактного класса, пока не реализованы все `@abstractmethod`.
- Можно добавлять обычные методы и свойства.
- Наследование от `ABC` можно заменить метаклассом `ABCMeta`.