我正在使用 Python 中的类,并且需要实现指定不同数据的能力。就我而言,这是一个 dsn 连接或通过参数指定端口、登录名和密码。
所以我无法做出选择;如果未指定 dsn,则将读取其他参数,反之亦然。
class DB:
def __init__(self, dsn=None, **kwargs):
self.user = kwargs['user']
self.password = kwargs['host']
self.database = kwargs['host']
self.host = kwargs['host']
self.connection = None
async def connect(self):
self.connection = await asyncpg.connect(user=self.user, password=self.password, database=self.database, host=self.host)
async def execute(self, query, *args):
if self.connection is None:
await self.connect()
result = await self.connection.fetch(query, *args)
return result
async def close(self):
if self.connection is not None:
await self.connection.close()
您想要选择一种方便的方式来传递数据以连接到数据库,无论是 DSN 还是单独传递每个参数。
为此,您需要稍微更正您的代码: