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
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
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?
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.