> Что такое абстрактный класс в Python (Python)
Уровень: junior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: К Технологии, Сбер, Т1
Стек: Python
> Пример ответа
Абстрактный класс в Python - это класс, который не предназначен для создания экземпляров напрямую, а служит шаблоном для других классов. Он может содержать как обычные методы с реализацией, так и абстрактные методы (без реализации), которые обязаны переопределить наследники.
Для создания абстрактного класса используется модуль abc (Abstract Base Classes). Класс должен наследоваться от ABC, а абстрактные методы помечаются декоратором @abstractmethod. Попытка создать экземпляр такого класса вызовет ошибку TypeError.
Пример:
PYTHONfrom abc import ABC, abstractmethodclass Animal(ABC):@abstractmethoddef sound(self):passdef info(self): # обычный методreturn "Это животное"class Dog(Animal):def sound(self):return "Гав"# animal = Animal() # Ошибка!dog = Dog()print(dog.sound()) # Гавprint(dog.info()) # Это животное
Абстрактные классы полезны для проектирования API, обеспечения полиморфизма и наложения контракта на реализацию. В Python также существует альтернативный механизм - протоколы (typing.Protocol), но абстрактные классы остаются основным инструментом для иерархий наследования.
> Похожие задачи по Python
Как работает ключевое слово yield в Python
В чем разница между git rebase и merge
Какие виды JOIN существуют и в чем разница между LEFT JOIN и INNER JOIN
Что такое лямбда-функции в Python и каковы их особенности?
> Похожие задачи по backend
Как работает ключевое слово yield в Python
В чем разница между git rebase и merge
Какие виды JOIN существуют и в чем разница между LEFT JOIN и INNER JOIN
Что такое лямбда-функции в Python и каковы их особенности?
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью