无法使用异步函数。电视节目 python asyncio

can't get to work an async function. telethon python asyncio

我正在尝试理解 asyncio 并将其集成到我的程序中。

我试过这个方法:

def my_test():
    loop = asyncio.new_event_loop()
    asyncio.set_event_loop(loop)
    loop.run_until_complete(my_function(group_id))

#//// code
    
async def my_function(group_id):
    group_id = (int(group_id))
    user = await client.get_entity(PeerUser(group_id)) # a telethon method the get an entity 
    print (user)

我尝试了不同的方法..但是代码在 user = 处停止,没有任何错误,所以我没有任何可搜索的东西

是的,因为我认为那是一件愚蠢的事情。找不到与之相关的任何内容,所以我想这可以帮助某人:

当您调用 client.start() 时,您正在创建一个循环,并且使用 client.run_until_disconnected() 您基本上告诉 asyncio 在断开客户端连接之前不要停止代码。 那么解决方案是什么? (阅读并理解文档 lmao)

    if to_search == "id" or to_search == "ID" or to_search == "Id":
        clr(); group_id = (input(f"{info}{r}Insert group id:{rs}\n>>> "))

--------> client.add_event_handler(func_name)<---- the async one

然后我注意到 func 被执行了 6 次(不明白为什么) 所以一定要像这样启动异步函数:

        async def search_by_id(event):
           client.remove_event_handler(func_name)