Estou trabalhando em um pequeno projeto de hobby usando Python. Quero "fazer direito" e seguir diretrizes comuns.
Seguindo um pacote de exemplo usando SQLite, posso fazer as coisas funcionarem bem usando contexto.
Exemplo:
import mypackage as mp
with mp.democlass() as dc:
dc.dosomething('some_parameter')
Isso obviamente chama as funções __enter__
e __exit__
.
Se eu desejar empacotar meu trabalho para que ele também possa ser usado sem a with
função, por exemplo:
dc = mp.democlass()
dc.dosomething('some_parameter')
.. qual seria a abordagem "correta". Posso determinar na classe se ela é usada em with
contexto, ou preciso codificar uma função de inicialização idêntica a __enter__
, por exemplo, para abrir uma conexão de banco de dados.
Espero que a pergunta faça sentido. Talvez eu precise de um módulo boilerplate que tenha ambas as maneiras.