with Gerenciamento de contexto

Última atualização: 2026-09-22

with Gerenciamento de contexto

A instrução with chama os métodos __enter__ / __exit__ do gerenciador de contexto ao entrar e sair do bloco de código; é comumente usada para arquivos/locks/conexões.

CategoriaPalavras-chave e Instruções
TipoPalavra-chave / Instrução
Versão do Pythonall

📝 Sintaxe

with expr [as target]:
    block

▶ Exemplo

Edite o código, clique em Executar e veja o resultado no painel de saída:

Saída:

closed: True
💡 Dica with é mais claro que try/finally e é a forma oficialmente recomendada de gerenciamento de recursos.
Mais estudos de caso em breve — aguarde.

❓ Perguntas frequentes

QDepois de abrir um arquivo com `with`, ainda preciso fechá-lo manualmente?
ANão. `with` chama automaticamente o `close()` do arquivo (via `__exit__`) ao sair do bloco, mesmo que uma exceção seja levantada no meio. Essa é a forma oficialmente recomendada de gerenciar recursos.
QO `with` pode gerenciar vários recursos ao mesmo tempo?
ASim. Python 3.10+ permite `with (open(a) as f1, open(b) as f2):`. Em versões antigas, use `with` aninhado ou gerencie dinamicamente com `contextlib.ExitStack`.
QA variável `as` depois do `with` ainda pode ser usada fora do bloco?
AO nome da variável ainda é acessível (Python não tem escopo de bloco), mas o recurso já está fechado. Por exemplo, ler ou escrever um arquivo fora do `with` gera `ValueError: I/O operation on closed file`.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%