Junior — Middle
Quais passos devem ser seguidos para implementar um gestor de contexto próprio em Python?
sobes.tech IA
Resposta da IA
Para implementar um gestor de contexto próprio em Python, é necessário definir um objeto que implemente os métodos:
__enter__(self)— chamado ao entrar no contexto (with), retorna o objeto que será vinculado à variável apósas.__exit__(self, exc_type, exc_val, exc_tb)— chamado ao sair do contexto, recebe informações sobre a exceção (se houve), e permite gerenciá-la ou suprimí-la.
Exemplo de um gestor de contexto simples:
class MyContextManager:
def __enter__(self):
print("Entrando no contexto")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Saindo do contexto")
if exc_type:
print(f"Tratamento da exceção: {exc_val}")
# Retornar True para suprimir a exceção
return True
with MyContextManager() as cm:
print("Dentro do with")
raise ValueError("Erro") # A exceção será tratada e suprimida
Também é possível usar o decorador contextlib.contextmanager para criar um gestor de contexto baseado em um gerador, o que simplifica o código.