> Что такое абстрактный класс в Python (Python)

Уровень: junior · Роль: backend · Язык: Python · Категория: Технические вопросы

Компании: К Технологии, Сбер, Т1

Стек: Python

> Пример ответа

Абстрактный класс в Python - это класс, который не предназначен для создания экземпляров напрямую, а служит шаблоном для других классов. Он может содержать как обычные методы с реализацией, так и абстрактные методы (без реализации), которые обязаны переопределить наследники.

Для создания абстрактного класса используется модуль abc (Abstract Base Classes). Класс должен наследоваться от ABC, а абстрактные методы помечаются декоратором @abstractmethod. Попытка создать экземпляр такого класса вызовет ошибку TypeError.

Пример:

PYTHON
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def sound(self):
pass
def info(self): # обычный метод
return "Это животное"
class Dog(Animal):
def sound(self):
return "Гав"
# animal = Animal() # Ошибка!
dog = Dog()
print(dog.sound()) # Гав
print(dog.info()) # Это животное

Абстрактные классы полезны для проектирования API, обеспечения полиморфизма и наложения контракта на реализацию. В Python также существует альтернативный механизм - протоколы (typing.Protocol), но абстрактные классы остаются основным инструментом для иерархий наследования.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью