小编hed*_*wig的帖子

等待方法并使用asyncio将变量分配给返回值?

我在请求中使用asyncio来尝试制作一个核心模块异步程序。我在尝试做这样的事情时遇到了困难

import asyncio
import requests
async def main():
    await r = requests.get(URL)
Run Code Online (Sandbox Code Playgroud)

我以为这样做会等待get请求完成,然后获取返回值并将其放入r中,但是会发生此错误

  File "prog.py", line 20
    await r = requests.get(URL)
    ^
SyntaxError: can't assign to await expression
Run Code Online (Sandbox Code Playgroud)

r =等待request.get(URL)也不起作用,给出

prog.py:31: RuntimeWarning: coroutine 'coroutine' was never awaited
  coroutine(args)
Run Code Online (Sandbox Code Playgroud)

有谁知道如何做到这一点?

python-3.x python-asyncio

5
推荐指数
1
解决办法
3092
查看次数

使用create_task()或collect()效率更高吗?

我仍然使用异步python的基础知识,有些事情使我感到困惑。

import asyncio
loop=asyncio.get_event_loop()
for variation in args:
    loop.create_task(coroutine(variation))
loop.run_forever()
Run Code Online (Sandbox Code Playgroud)

似乎与此非常相似

import asyncio
loop=asyncio.get_event_loop()
loop.run_forever(
    asyncio.gather(
        coroutine(variation_1),
        coroutine(variation_2),
        ...))
Run Code Online (Sandbox Code Playgroud)

他们可能会做同样的事情,但这似乎没有用,所以有什么区别?

python-3.x python-asyncio

2
推荐指数
1
解决办法
896
查看次数

标签 统计

python-3.x ×2

python-asyncio ×2