Что такое протокол
Python
Senior
Без компании
Что такое протокол
Ответы
В Python протокол — это неформальный интерфейс, определяющий набор методов, которые должен реализовать класс, чтобы поддерживать определенное поведение. В отличие от интерфейсов в других языках, протоколы не требуют явного наследования — достаточно просто реализовать нужные методы (утиная типизация).
Примеры протоколов:
- **Итерируемый** (`__iter__` или `__getitem__`)
- **Контекстный менеджер** (`__enter__`, `__exit__`)
- **Дескриптор** (`__get__`, `__set__`, `__delete__`)
```
class MyIterable:
def __iter__(self):
return iter([1, 2, 3])
# Работает, потому что реализован протокол итерации
for item in MyIterable():
print(item)
```
Начиная с Python 3.8, протоколы можно формализовать через `typing.Protocol` для статической проверки типов.