Junior — Middle
82
Является ли возможность определения интерфейса в Python и как это реализовать?
Answer from AI
sobes.tech AI
В Python нет встроенного механизма интерфейсов, как в некоторых других языках (например, Java или C#). Однако интерфейсы можно реализовать с помощью абстрактных базовых классов (Abstract Base Classes, ABC) из модуля abc.
С помощью ABC можно определить методы, которые должны быть реализованы в подклассах, тем самым задавая контракт (интерфейс).
Пример:
from abc import ABC, abstractmethod
class MyInterface(ABC):
@abstractmethod
def my_method(self):
pass
class Implementation(MyInterface):
def my_method(self):
print("Реализация метода")
obj = Implementation()
obj.my_method() # Выведет "Реализация метода"
Если класс, наследующийся от MyInterface, не реализует все абстрактные методы, попытка создать его экземпляр вызовет ошибку.