ExpertiDict

Python · Intermediário · Inglês · Técnico

context manager

/ˈkɑntɛkst ˈmænɪdʒɚ/substantivo

Objeto que define o que ocorre ao entrar e sair de um bloco with, via __enter__ e __exit__. Garante limpeza, como fechar arquivos ou liberar locks, mesmo com erro.

Onde usar

Aparece em open(), locks, conexões e transações. Num review, abrir recursos sem with é apontado, porque uma exceção pode deixar o recurso aberto.

Em código

class Aviso:
  def __enter__(self):
    print('entrou')
  def __exit__(self, *erro):
    print('saiu')

with Aviso():
  print('dentro')

Exemplos

Wrap the connection in a context manager.

Envolva a conexão em um context manager.

The context manager closes the file even if it fails.

O context manager fecha o arquivo mesmo se falhar.

Cuidado

Lembre que __exit__ pode engolir exceções: se devolver um valor verdadeiro, o erro é suprimido e o código segue adiante.

Sinônimos

gerenciador de contexto

Veja também

Todos os termos de Python