Python|AsyncIO|TypeError:应为协程
本教程将介绍Python|AsyncIO|TypeError:应为协程的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。
问题描述
我正在尝试使用asyncio进行python协程编程。这是我的代码。
import asyncio
async def coro_function():
return 2 + 2
async def get():
return await coro_function()
print(asyncio.iscoroutinefunction(get))
loop = asyncio.get_event_loop()
a1 = loop.create_task(get)
loop.run_until_complete(a1)
但当我执行它时,它给我错误
True
Traceback (most recent call last):
File "a.py", line 13, in <module>
a1 = loop.create_task(get)
File "/home/alie/anaconda3/lib/python3.7/asyncio/base_events.py", line 405, in create_task
task = tasks.Task(coro, loop=self)
TypeError: a coroutine was expected, got <function get at 0x7fe1280b6c80>
怎么解决?
推荐答案
您传入的函数get
。
若要传入协程,请传入get()
。
a1 = loop.create_task(get())
loop.run_until_complete(a1)
查看类型:
>>> type(get)
<class 'function'>
>>> print(type(get()))
<class 'coroutine'>
get
是协程,即返回协程对象get()
的函数。有关更多信息和对基础知识的更好理解,请查看docs。
好了关于Python|AsyncIO|TypeError:应为协程的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。