Как реализуется абстрактный класс ?
Спросят с вероятностью 7%
Абстрактные классы реализуются с помощью модуля
Пример:
1️⃣ Импортировать
2️⃣ Унаследовать класс от
3️⃣ Определить один или несколько методов как абстрактные, используя декоратор
В этом примере
➡️ Примеры ответов
➡️ Список всех вопросов на Python Developer
🧩 Идущий | 🔐 Собесы | 🔐 Тестовые
Спросят с вероятностью 7%
Абстрактные классы реализуются с помощью модуля
abc
(Abstract Base Classes). Не может быть инстанциирован напрямую и предназначен для того, чтобы служить базовым классом для других классов. Используются для определения общего интерфейса для группы классов и могут содержать один или несколько абстрактных методов. Абстрактный метод — это метод, объявленный в абстрактном классе, но должен быть реализован в подклассах.Пример:
1️⃣ Импортировать
ABC
и abstractmethod
из модуля abc
.2️⃣ Унаследовать класс от
ABC
, что делает его абстрактным.3️⃣ Определить один или несколько методов как абстрактные, используя декоратор
@abstractmethod
. Должны быть переопределены в неабстрактных подклассах.from abc import ABC, abstractmethod
class AbstractClass(ABC):
@abstractmethod
def abstract_method(self):
pass
class ConcreteClass(AbstractClass):
def abstract_method(self):
print("Реализация абстрактного метода в конкретном классе")
# Создание экземпляра абстрактного класса приведет к ошибке
# abstract_instance = AbstractClass() # TypeError
# Создание экземпляра конкретного класса, который реализует абстрактный метод
concrete_instance = ConcreteClass()
concrete_instance.abstract_method()
В этом примере
AbstractClass
является абстрактным классом, содержащим абстрактный метод abstract_method
. Класс ConcreteClass
наследуется от AbstractClass
и реализует абстрактный метод. Попытка создать экземпляр абстрактного класса AbstractClass
напрямую приведет к ошибке, так как абстрактные классы предназначены только для наследования и определения интерфейса.➡️ Примеры ответов
➡️ Список всех вопросов на Python Developer