Junior — Middle
92
Kunt u uitleggen wat Protocol is in de module typing in Python?
Bedrijven waar gevraagd werd
Бергман Инфотех
Antwoord van AI
sobes.tech AI
Protocol в модуле typing Python — это способ описать интерфейс (набор методов и атрибутов), который должен поддерживать объект, без необходимости наследования от конкретного класса.
Это часть концепции "структурной типизации" (structural typing), где важна не принадлежность объекта к определённому классу, а наличие у него нужных методов и свойств.
Пример использования Protocol:
from typing import Protocol
class SupportsClose(Protocol):
def close(self) -> None:
...
class Resource:
def close(self) -> None:
print("Closed")
def cleanup(resource: SupportsClose) -> None:
resource.close()
r = Resource()
cleanup(r) # Работает, потому что Resource имеет метод close
Таким образом, Protocol позволяет описывать требования к объектам для статической проверки типов, не заставляя их явно наследоваться от какого-либо базового класса.