等待协程并将结果分配给协程外部的变量

2024-05-15 11:14:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望能够创建一个可以调用的utils文件,该文件使用命令列表从数据库请求所有数据:

import asyncpg

async def is_registered(ctx):
    pg_con = await asyncpg.create_pool(database="Db", user="postgres", password=db_pw)
    registered = await pg_con.execute("SELECT EXISTS (SELECT 1 FROM users WHERE user_id = $1)", ctx.author.id)
    if registered:
        await ctx.send("hi")
        return True
    else:
        return False

async def is_registered(ctx): #another function
    pg_con = await asyncpg.create_pool(database="Db", user="postgres", password=db_pw)
    registered = await pg_con.execute("SELECT EXISTS (SELECT 1 FROM users WHERE user_id = $1)", ctx.author.id)
    if registered:
        await ctx.send("hi")
        return True
    else:
        return False

...

等等。我想在另一个文件中使用import调用这些函数。每次命名pg_con有什么缺点吗?有没有一种方法可以处理它,这样我就不必这么做了?有没有更好的方法来处理这个问题


Tags: 文件importidasyncreturnisdefawait
1条回答
网友
1楼 · 发布于 2024-05-15 11:14:58

使用连接池执行单个查询没有任何意义,而且每次建立连接/池都要慢得多

更好的处理方法是将^{}子类化并将连接池添加为属性。
这样,您就可以通过^{}访问单个池

另外,请注意,在您的示例中,您正在对函数进行阴影处理

相关问题 更多 >