impando uma conexão interna pysqlite na destruição de objet
Tenho um objeto com uma conexão de banco de dados interna ativa durante toda a vida útil. No final da execução do programa, a conexão deve ser confirmada e fechada. Até agora eu usei um @ explíciclose
, mas isso é um pouco complicado, especialmente quando podem ocorrer exceções no código de chamad
Estou pensando em usar o__del__
método de fechamento, mas após algumas leituras online, tenho preocupações. Esse é um padrão de uso válido? Posso ter certeza de que os recursos internos serão liberados em__del__
corretamente?
Esta discussão levantou uma pergunta semelhante, mas não encontrou resposta satisfatória. Eu não quero ter um @ explíciclose
e usandowith
não é uma opção, porque meu objeto não é usado tão simplesmente como abrir-fechar-fechar, mas é mantido como membro de outro objeto maior, que o utiliza durante a execução em uma GU
@ C ++ possui destruidores perfeitamente funcionais, onde é possível liberar recursos com segurança, então eu imagino que o Python também tenha algo acordado. Por alguma razão, parece não ser o caso, e muitos na comunidade juram contra__del__
. Qual é a alternativa então?