我在python中有一个模块,它提供了执行数据库查询的各种函数。 它看起来像这样:
def do_some_query(conn):
## logic goes here
def do_something_else(conn):
## logic goes here
其中conn
是数据库连接对象。当然,这意味着很多传递conn
对象。
我想让用户只为会话设置一次连接对象,然后调用函数。
显然将整个事情放在一个类中是一个很好的答案,但我不想让用户每次想要使用这些函数时都要初始化一个类。 I.E,我不希望API像这样:
from database_module import DatabaseClass
db = DatabaseClass()
db.connect(...)
db.do_some_query()
但是像这样:
import database_module as dm
dm.connect(...)
dm.do_some_query()
有没有办法隐藏'来自用户的类,还是提供没有类的封装?
答案 0 :(得分:1)
您可以使用connect
函数将连接置于全局变量中,其他函数将使用它。
_conn = None
def connect():
global _conn
_conn = ...
def query():
_conn.execute("SELECT ...")