Skip to main content

Protocol | Python

  • Protocol | Python

alt text

Protocols são uma maneira de definir interfaces em Python. Eles foram introduzidos no PEP 544 e são usados para definir um conjunto de métodos que uma classe deve implementar, sem a necessidade de herança explícita. Protocols são especialmente úteis para tipagem estática e podem ser usados com o módulo typing.

Definindo um Protocol

Para definir um Protocol, utilizamos o módulo typing e a classe Protocol.

from typing import Protocol

class ExemploProtocol(Protocol):
def metodo_exemplo(self) -> str:
...

Implementando um Protocol

Qualquer classe que implemente todos os métodos definidos em um Protocol é considerada uma implementação válida desse Protocol.

class MinhaClasse:
def metodo_exemplo(self) -> str:
return "Implementação do método exemplo"

def usar_protocol(obj: ExemploProtocol) -> None:
print(obj.metodo_exemplo())

# Uso
obj = MinhaClasse()
usar_protocol(obj) # Saída: Implementação do método exemplo

Vantagens dos Protocols

  • Flexibilidade: Não requer herança explícita, permitindo que classes existentes possam ser usadas com novos Protocols sem modificações.
  • Tipagem Estática: Melhora a verificação de tipos em tempo de desenvolvimento, ajudando a evitar erros.
  • Documentação: Facilita a documentação de interfaces esperadas para classes.

Protocols são uma ferramenta poderosa para definir interfaces e melhorar a tipagem estática em Python, tornando o código mais robusto e fácil de manter.