Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Bloco finally

Não entendi a finalidade do Bloco finally uma vez que, posteriormente foi afirmado que não precisamos utilizá-lo.

Foi apresentado apenas para conhecimento? É isso ?

Obrigado!

Fabricio

6 respostas

Olá, o bloco finally você tem a garantia que será executado caso o código tenha sido executado com sucesso ou caso algum erro tenha ocorrido. Ele é ideal quando você precisa, por exemplo, fechar a conexão de um banco.

Não é raro o desenvolvedor repetir o código que fecha a conexão no código executado com sucesso e também no except, então, o finally centraliza em um lugar apenas um único código que será executado no sucesso ou na falha.

No exemplo do curso, fechamos a abertura de um arquivo tanto no sucesso de seu uso quanto na falha.

Era essa a sua dúvida? Conseguir ajudar?

solução!

Ah, sua dúvida é nesse trecho:

" Não precisamos nos preocupar em inicializar a variável arquivo nem fazer o bloco finally. O Python assume essa responsabilidade permitindo que foquemos apenas em nosso código, agora muito mais legível."

Isso é quando estou falando de with open, nele você não precisa do finally, porque o with open é inteligente para fechar o arquivo. Só nesse caso. Nem toda API do Python faz isso, mas o with open faz.

>>> with open("perfis.csv") as arquivo:
...    for linha in arquivo:
...        print linha
...

Era essa a dúvida. Ok, Obrigado!

Existe alguma " regra" , quando usar finally e quando usar with open ?

Se você for abrir um arquivo, vai de with open, apenas arquivos.

Tá preparado para o próximo treinamento? Design Pattern em Python? Esse vai deixá-lo melhor do que já é em Python!

Acredito que estou, sempre existem dúvidas mas acredito que a prática vai me ajudar a melhorar com o tempo.