Middle
O que é um gerenciador de contexto?
sobes.tech IA
Resposta da IA
O gestor de contexto em Python é um objeto que define o contexto de execução, gerindo a alocação e libertação de recursos. Implementa o protocolo do gestor de contexto, que inclui os métodos mágicos __enter__ e __exit__.
__enter__: É chamado ao entrar no contexto, geralmente retornando o recurso a gerir.__exit__: É chamado ao sair do contexto, mesmo que tenha ocorrido uma exceção. É responsável por libertar o recurso. Recebe três argumentos: o tipo de exceção, o objeto de exceção e o rastreio da pilha (ouNonese não houve exceção).
Frequentemente usado com a instrução with para gerir automaticamente recursos como ficheiros, ligações de rede ou bloqueios.
# Exemplo de uso do gestor de contexto para trabalhar com um ficheiro
with open('myfile.txt', 'r') as f:
content = f.read()
# O ficheiro fecha-se automaticamente após sair do bloco with
Os gestores de contexto podem ser criados implementando o protocolo ou usando o decorador @contextmanager do módulo contextlib.
# Exemplo de criação de um gestor de contexto usando o decorador
def timer():
import time
start_time = time.time()
yield # Ponto de entrada no contexto
end_time = time.time()
print(f"Tempo de execução: {end_time - start_time:.2f} segundos")
# Uso do gestor de contexto criado
with timer():
# Código a medir
import time
time.sleep(1)