Sobes.tech
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, не реализует все абстрактные методы, попытка создать его экземпляр вызовет ошибку.