ABC уже недостаточно?В Python нет привычных интерфейсов, как в Java или C#, но это не значит, что их нельзя использовать. На практике разработчики применяют несколько подходов — от обычного duck typing до абстрактных базовых классов (
abc) и современных Protocol из модуля typing. Что важно знать:
🔹 Duck typing — классический подход Python. Если объект реализует нужные методы, значит, он подходит, независимо от наследования.
🔹 ABC (Abstract Base Classes) — позволяют явно определить набор обязательных методов. Если наследник не реализует их, создать экземпляр класса не получится.
🔹 Protocol — современный способ описывать интерфейсы без наследования. Особенно полезен при использовании статической проверки типов (
mypy, Pyright и др.). Код становится гибче, а зависимости между классами — слабее. 💡 Когда что использовать?
* Небольшие проекты — достаточно duck typing.
* Средние и крупные проекты —
ABC помогает избежать ошибок реализации.* Современные кодовые базы с type hints — чаще всего лучший выбор
Protocol, который не требует наследования и отлично сочетается с IDE и статическими анализаторами. Если вы до сих пор считаете, что интерфейсов в Python нет, возможно, вы просто ещё не познакомились с
Protocol.https://realpython.com/python-interface/
#python
👉 @python_real
