Sobes.tech
Back to questions
Junior — Middle
63

Применяете ли вы Protocol из модуля typing в своих Python-проектах?

Answer from AI

sobes.tech AI

Да, я использую Protocol из модуля typing в Python для определения интерфейсов без необходимости наследования. Protocol позволяет описать набор методов и атрибутов, которые должен реализовать класс, что удобно для статической типизации и проверки соответствия интерфейсу.

Пример использования Protocol:

from typing import Protocol

class SupportsClose(Protocol):
    def close(self) -> None:
        ...

class Resource:
    def close(self) -> None:
        print("Resource closed")

def cleanup(resource: SupportsClose) -> None:
    resource.close()

res = Resource()
cleanup(res)  # Работает, так как Resource реализует метод close

Таким образом, Protocol помогает писать более гибкий и типобезопасный код.