Gerenciadores de contexto (instruções with)
Descubra o poder dos gerenciadores de contexto para gerenciar recursos.
Gerenciadores de contexto (instruções with) é uma aula grátis de Python Academy no CoddyKit. Esta é a aula 3 de 5. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Python Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python Academy inclui 5 aulas no total.
Introdução aos gerenciadores de contexto
Introdução aos gerenciadores de contexto
Os gerenciadores de contexto no Python ajudam a gerenciar recursos como arquivos, conexões de rede e conexões com bancos de dados. Eles garantem que os recursos sejam adquiridos e liberados corretamente, mesmo que ocorra um erro.
Nesta lição, você aprenderá a usar e criar gerenciadores de contexto com a instrução with.

O que é um gerenciador de contexto?
O que é um gerenciador de contexto?
Um gerenciador de contexto é uma estrutura que permite alocar e liberar recursos com eficiência. Ele usa a instrução with para envolver o código de gerenciamento de recursos.
# Using a context manager with a file
with open("example.txt", "r") as file:
content = file.read()
print(content) # File is automatically closed after the blockPor que usar gerenciadores de contexto?
Por que usar gerenciadores de contexto?
Os gerenciadores de contexto ajudam você a:
- Garantir a limpeza adequada dos recursos.
- Reduzir as chances de vazamentos de recursos.
- Escrever código mais limpo e legível.
Gerenciadores de contexto integrados
Gerenciadores de contexto integrados
O Python inclui vários gerenciadores de contexto integrados, como:
open: gerencia operações de arquivo.decimal.localcontext: gerencia configurações de precisão para operações decimais.
Criando um gerenciador de contexto personalizado
Criando um gerenciador de contexto personalizado
Você pode criar um gerenciador de contexto personalizado usando uma classe com os métodos __enter__ e __exit__:
# Custom context manager class
class CustomManager:
def __enter__(self):
print("Entering the context")
return self
def __exit__(self, exc_type, exc_value, traceback):
print("Exiting the context")
with CustomManager() as manager:
print("Inside the context")Tratando exceções em gerenciadores de contexto
Tratando exceções em gerenciadores de contexto
Os gerenciadores de contexto personalizados podem tratar exceções usando o método __exit__:
# Handling exceptions in a context manager
class ExceptionManager:
def __enter__(self):
print("Entering the context")
return self
def __exit__(self, exc_type, exc_value, traceback):
if exc_type:
print(f"An exception occurred: {exc_value}")
print("Exiting the context")
return True # Suppresses the exception
with ExceptionManager():
raise ValueError("Something went wrong")Usando o módulo contextlib
Usando o módulo contextlib
O módulo contextlib fornece utilitários para simplificar a criação de gerenciadores de contexto:
# Using contextlib to create a context manager
from contextlib import contextmanager
@contextmanager
def custom_context():
print("Entering the context")
yield
print("Exiting the context")
with custom_context():
print("Inside the context")Práticas recomendadas para gerenciadores de contexto
Práticas recomendadas para gerenciadores de contexto
Veja algumas práticas recomendadas:
- Use gerenciadores de contexto integrados sempre que possível.
- Trate as exceções corretamente em gerenciadores de contexto personalizados.
- Use o módulo
contextlibpara obter uma sintaxe mais simples.
Erros comuns com gerenciadores de contexto
Erros comuns com gerenciadores de contexto
Veja alguns erros que você deve evitar:
- Não usar
withpara gerenciar recursos. - Não implementar
__exit__corretamente em gerenciadores de contexto personalizados. - Ignorar exceções em
__exit__.
O que aprendemos?
O que aprendemos?
Nesta lição, você aprendeu:
- O que são gerenciadores de contexto e como funcionam com a instrução
with. - Como criar gerenciadores de contexto personalizados usando
__enter__e__exit__. - Como usar o módulo
contextlibpara simplificar a criação de gerenciadores de contexto.
Muito bem! Vamos passar ao próximo tópico.

Perguntas Frequentes
A aula “Gerenciadores de contexto (instruções with)” é grátis?
Sim — o texto completo de “Gerenciadores de contexto (instruções with)” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Python Academy, atualize para CoddyKit PRO. O curso de Python Academy inclui 5 aulas no total.
O que vou aprender em “Gerenciadores de contexto (instruções with)”?
Descubra o poder dos gerenciadores de contexto para gerenciar recursos. Você pratica Python Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Python Academy?
Nenhuma experiência prévia é necessária. Python Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 5.
Quanto tempo leva a aula “Gerenciadores de contexto (instruções with)”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Python Academy?
Sim. Cada aula de Python Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Decoradores
- Geradores
- Gerenciadores de contexto (instruções with)
- Compreensões (de listas, conjuntos e dicionários)
- Iteradores e iteráveis