Eu criei uma biblioteca em Python que contém funções para acessar um banco de dados. Esta é uma biblioteca de wrapper em torno de um banco de dados de aplicativos de terceiros, gravada devido ao fato de que o aplicativo de terceiros não oferece uma API decente. Agora, originalmente deixei cada função abrir uma conexão com o banco de dados pela duração da chamada de função, até que minha lógica de programa usasse chamadas aninhadas para as funções nas quais eu estaria chamando uma função específica alguns milhares de vezes. Isso não teve muito desempenho. A criação de perfil mostrou que a sobrecarga estava na configuração da conexão com o banco de dados - uma vez por chamada de função. Então, mudei a conexão aberta de dentro da (s) função (s) para o próprio módulo, para que a conexão com o banco de dados fosse aberta quando o módulo da biblioteca fosse importado. Isso me deu um desempenho aceitável.
Agora eu tenho duas perguntas sobre isso. Em primeiro lugar, preciso me preocupar com o fato de não estar mais fechando explicitamente a conexão com o banco de dados e como poderia fazê-lo explicitamente com essa configuração? Em segundo lugar, o que eu fiz cai perto do domínio das boas práticas e como eu poderia abordar isso de outra forma?
openConn
função e fazer o usuário passá-lo para cada função que eles chamam, de que maneira eles podem escopo a conexão em umawith
declaração ou qualquer outra coisa