Protocol | Python
- Protocol | Python

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.