![5 problemas com bancos de dados em nuvem (e como corrigi-los)](https://optimuscloud.com.br/wp-content/uploads/2024/02/5-problemas-com-bancos-de-dados-em-nuvem-e-como-150x150.jpg)
5 problemas com bancos de dados em nuvem (e como corrigi-los)
2 de fevereiro de 2024![Como evoluímos de IaC para ambientes como código](https://optimuscloud.com.br/wp-content/uploads/2024/02/1706896804_Como-evoluimos-de-IaC-para-ambientes-como-codigo-150x150.jpg)
Como evoluímos de IaC para ambientes como código
2 de fevereiro de 2024O tratamento de erros é um conceito muito importante na programação. Sem o tratamento de erros, seus aplicativos não seriam capazes de lidar efetivamente com entradas ou condições anormais e, muito provavelmente, não funcionariam ou permaneceriam em execução. Como programador Python, você precisa garantir que seus aplicativos sejam capazes de combater erros que possam ter sido causados pelos usuários ou por seu próprio código.
Isso pode ser complicado, mas felizmente o Python tem uma declaração que torna tudo um pouco mais fácil. Essa afirmação é com e serve não apenas para ajudar seus programas a lidar com erros, mas também para tornar seu código muito mais limpo e fácil de ler (o que é importante no domínio do Python) e substitui os mais complicados tentar/finalmente declaração.
Deixe-me mostrar um aplicativo simples que usa o tentar/finalmente declaração e então demonstrarei o mesmo aplicativo usando com. Este aplicativo simplesmente criará um novo arquivo e escreverá nele o texto “Hello New Stack”. Usaremos as funções open(), write() e close() para realizar esta tarefa (cada uma delas disponível na biblioteca padrão (para que você não precise importar nada primeiro).
O tentar/finalmente a versão deste código é semelhante a esta:
Uma breve explicação:
- arquivo = open(‘test_file’, ‘w’) – define o arquivo variável criando um novo arquivo, chamado arquivo_testecom permissões de gravação.
- try – diz ao Python que vamos testar um bloco de código em busca de erros.
- file.write(‘Olá nova pilha’) – instrui o Python que vamos escrever Olá nova pilha para o arquivo definido pela variável.
- finalmente – encerra o bloco de código que está sendo testado em busca de erros.
- file.close() – fecha o arquivo_teste.
Crie esse arquivo usando o editor de sua preferência (nomeando-o tentefinalmente.py) e execute-o com:
<i><span style="font-weight: 400;">python3 tryfinally.py</span></i>
Você não deverá ver nenhuma saída, mas se visualizar o conteúdo de arquivo_testedeve ler-se:
<i><span style="font-weight: 400;">Hello New Stack</span></i>
Ok, vamos fazer a mesma coisa, só que desta vez usaremos o com declaração. Agora podemos fazer isso com apenas duas linhas parecidas com esta:
Uma explicação:
- com open(“test_file”, “w”) como arquivo: – isso faz duas coisas: abre arquivo_teste para escrever e fecha-o automaticamente após o escrever processo.
- file.write(“Hello New Stack”) – grava o conteúdo entre aspas para arquivo_teste.
Execute este programa e você verá os mesmos resultados do aplicativo que o utilizou tentar/finalmente declaração. A diferença é que conseguimos usar o tratamento de erros de maneira mais limpa e eficiente. Embora não haja nada de errado em usar tentar/finalmente, o objetivo do Python é escrever um código mais limpo e mais facilmente legível. Ao usar menos linhas de código, é menos provável que você introduza erros.
A verdadeira beleza de com é que ele cuida de ações que, de outra forma, exigiriam mais código para serem executadas (como abrir e fechar um arquivo).
Claro, com não funciona apenas com abrir(). Você pode até criar objetos que suportem com. Vamos criar um objeto para gravação de arquivos que utiliza com. Faremos a mesma coisa que fizemos acima (escrever Olá Mundo que arquivo_teste), só que desta vez faremos isso criando um objeto que empregará com.
Existem algumas coisas dignas de nota. Vamos empregar o seguinte:
- class – serve como modelo de código para criar nosso objeto
- def – uma palavra-chave usada para definir uma função.
- __init__ – inicializa um objeto recém-criado
- __enter__ – o valor de retorno está vinculado ao com variável de destino.
- __exit__ – trata de casos especiais que podem acontecer dentro de um bloco de código.
Nosso código fica assim:
A linha por linha fica assim:
- class TextWriter(object): – estamos nomeando nossa classe (TextWriter) como um objeto.
- def __init__(self, file_name): – inicializa nosso objeto e possibilita o acesso à variável nome do arquivo
- self.file_name = file_name define self.file_name como file_name
- def __enter__(self): – liga-se a nome do arquivo (conforme definido por si mesmo)
- self.file = open(self.file_name, ‘w’) – certifique-se de que nosso arquivo seja aberto com permissões de gravação.
- return self.file – retorna o resultado para o chamador original
- def __exit__(self, *args): – usa *args para passar um número variável de argumentos para a função.
- self.file.close() – fecha um arquivo aberto.
- with TextWriter(‘test_file’) as tfile: – usa a instrução with para lidar com erros para nosso objeto TextWriter e o define como tfile, abre test_file para gravação e o fecha quando a função write() conclui sua tarefa.
- tfile.write(‘Hello New Stack’) – grava Hello New Stack em morreu.
Ao executar o programa, você obterá a mesma saída de antes (Olá nova pilha escrito para arquivo_teste).
With é uma ferramenta muito poderosa e útil para tratamento de erros do Python. Ao substituir o tentar/finalmente método com um bloco de código mais conciso, você não apenas garante que seus programas fechem recursos de maneira confiável após eles serem usados, mas também escreve um código mais limpo que introduz menos erros.
A postagem Como usar a instrução with em Python apareceu pela primeira vez em The New Stack.