15.12.2022 Views

Python Eficaz

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Depois que o código dentro do with termina, chamar métodos de log em nível de

depuração na instância 'my-log' da classe Logger não mostrará nada na tela

porque o nível de severidade de log original foi restaurado. As mensagens de log

de erros serão sempre impressas, independente do contexto.

logger = logging.getLogger('my-log')

logger.debug('Debug will not print')

logger.error('Error will print')

>>>

Error will print

Lembre-se

• O comando with permite reusar lógica de blocos try/finally e reduzir a

poluição visual.

• O módulo nativo contextlib disponibiliza o decorador contextmanager que

permite ao programador usar suas próprias funções com o comando with.

• O valor produzido pelos gerenciadores de contexto são entregues ao trecho as

do comando with. É útil para permitir que o código acesse diretamente a

causa do contexto especial.

Item 44: Aumente a confiabilidade de pickle com

copyreg

O módulo nativo pickle pode serializar os objetos do Python em um fluxo de

bytes e desserializar os bytes novamente como objetos. Os fluxos de dados

gerados pelo pickle não devem ser usados para comunicação entre dois

elementos quando um deles (ou ambos) não for confiável. O objetivo de pickle é

permitir a passagem de objetos do Python entre dois programas que você

controle usando canais de comunicação exclusivamente binários.

Nota

O formato de serialização do módulo pickle é propositalmente inseguro, foi

projetado para ser assim. Os dados serializados contêm o que é,

essencialmente, um programa que descreve como reconstruir o objeto

original do Python. Isso significa que uma carga maliciosa codificada pelo

pickle poderia ser usada para comprometer qualquer parte de um programa em

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!