Gerenciadores de contexto (instruções with)
Descubra o poder dos gerenciadores de contexto para administrar recursos
Gerenciadores de contexto (instruções with) é uma aula grátis de Python For Kids 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 For Kids, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Python For Kids inclui 5 aulas no total.
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 quando ocorre 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
Um gerenciador de contexto é uma construção que permite alocar e liberar recursos de forma eficiente. 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
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
O Python inclui vários gerenciadores de contexto integrados, como:
open: gerencia operações com arquivos.decimal.localcontext: gerencia configurações de precisão para operações decimais.
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")Lidando com Exceções em Gerenciadores de Contexto
Gerenciadores de contexto personalizados podem lidar com 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 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")Boas práticas para gerenciadores de contexto
Aqui estão algumas boas práticas:
- Use gerenciadores de contexto integrados sempre que possível.
- Trate exceções corretamente em gerenciadores de contexto personalizados.
- Use o módulo
contextlibpara obter uma sintaxe mais simples.
Erros Comuns com Gerenciadores de Contexto
Veja alguns erros que devem ser evitados:
- Não usar
withpara gerenciar recursos. - Não implementar
__exit__corretamente em gerenciadores de contexto personalizados. - Ignorar exceções em
__exit__.
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.
Ótimo trabalho! Vamos passar para o próximo tópico.

Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 22
- Aulas
- 94
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 For Kids, atualize para CoddyKit PRO. O curso de Python For Kids inclui 5 aulas no total.
O que vou aprender em “Gerenciadores de contexto (instruções with)”?
Descubra o poder dos gerenciadores de contexto para administrar recursos Você pratica Python For Kids 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 For Kids?
Nenhuma experiência prévia é necessária. Python For Kids 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 For Kids?
Sim. Cada aula de Python For Kids 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