Sobes.tech
Назад к вопросам
Junior — Middle
64

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

Ответ от нейросети

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 помогает писать более гибкий и типобезопасный код.