Exercícios
Avalie seus conhecimentos sobre gerenciadores de contexto e controle de recursos em Python. Este questionário aborda o uso de with para garantir a aquisição e a liberação segura de arquivos, locks e outros recursos, além do funcionamento dos métodos __enter__ e __exit__. Explore contextos aninhados, supressão de exceções, o decorator @contextlib.contextmanager, contextlib.closing, nullcontext e ExitStack para recursos definidos dinamicamente. Você também encontrará questões sobre a ordem de execução das rotinas de limpeza, o comportamento de exceções durante o encerramento e o protocolo assíncrono com async with, __aenter__ e __aexit__. Ideal para praticar boas práticas de gerenciamento de recursos, prevenção de vazamentos e escrita de código Python mais seguro e organizado.
Responda às questões abaixo e confira a explicação de cada resposta.
0/16 respondidas
Áudio automático ativado: as próximas questões serão lidas ao clicar em Continuar.
A instrução with usa um gerenciador de contexto para preparar e finalizar o uso de um recurso, inclusive quando ocorre uma exceção no bloco.
Ao entrar no contexto, Python chama __enter__. O objeto retornado por esse método é atribuído à variável indicada depois de as.
Sem exceção, Python chama __exit__(None, None, None). Esses três argumentos representam, respectivamente, tipo, valor e traceback.
Contextos aninhados são encerrados na ordem inversa à entrada. Esse comportamento segue o princípio LIFO: o último contexto aberto é o primeiro a ser fechado.
Um retorno verdadeiro de __exit__ informa ao interpretador que a exceção foi tratada. Um retorno falso ou None permite sua propagação.
O objeto de arquivo implementa o protocolo de contexto. Ao sair do bloco, seu fechamento é realizado mesmo se uma operação interna falhar.
O código anterior a yield prepara o contexto, e o código posterior realiza a finalização. O valor produzido por yield pode ser recebido depois de as.
O padrão try/finally ao redor de yield garante que a etapa de limpeza seja executada tanto no término normal quanto diante de uma exceção.
contextlib.suppress ignora somente os tipos de exceção declarados. Outros erros continuam sendo propagados normalmente.
closing adapta um objeto com método close para uso em with, chamando esse método automaticamente ao final do contexto.
ExitStack permite incluir uma quantidade dinâmica de gerenciadores e callbacks de limpeza. Ao final, as ações registradas são executadas em ordem inversa.
ExitStack usa a ordem LIFO. Assim, o último callback registrado é executado primeiro, reproduzindo o encerramento de contextos aninhados.
nullcontext não realiza preparação nem limpeza especial. Ele é útil para manter uma estrutura uniforme quando um contexto real só é necessário em determinadas condições.
Uma exceção levantada por __exit__ pode substituir a propagação normal e sair do contexto. Se já havia outra exceção, Python pode preservá-la no encadeamento para diagnóstico.
async with utiliza __aenter__ e __aexit__. Esses métodos permitem aguardar operações assíncronas durante a aquisição e a liberação do recurso.
O gerenciador adquire o lock antes da região protegida e o libera ao sair. Isso reduz o risco de esquecer a liberação após falhas.

Curso GratuitoAnálise e projeto de sistemas
11h02m
9 exercícios

Curso GratuitoPython do Zero ao Avançado
28h22m
54 exercícios

Curso GratuitoProgramação orientada a objeto usando Java
11h56m
10 exercícios

Curso GratuitoProgramação em C
11h21m
22 exercícios

Curso GratuitoRuby on Rails para iniciantes
16h31m
32 exercícios

Curso GratuitoJava
27h43m
62 exercícios

Curso GratuitoProgramação em Python
10h21m
27 exercícios

Curso GratuitoEngenharia de software
7h58m
24 exercícios
Milhares de cursos online em vídeo, ebooks e áudiobooks.
Para testar seus conhecimentos no decorrer dos cursos online
Gerado diretamente na galeria de fotos do seu celular e enviado ao seu e-mail
Baixe nosso aplicativo pelo QR Code ou pelos links abaixo:.
+ de 10 milhões
de alunos
Certificado grátis e
válido em todo o Brasil
60 mil exercícios
gratuitos
4,8/5 classificação
nas lojas de apps
Cursos gratuitos em
vídeo, ebooks e audiobooks