在Python中,可以使用asyncio.iscoroutinefunction和asyncio.iscoroutine函数来判断一个函数是否是协程函数,以及一个协程是否已经完成。
例如,如果你有一个协程函数async def my_coroutine(): pass,你可以使用以下代码来检查它是否是一个协程函数:
python
import asyncio
def is_coroutine_function(func):
return asyncio.iscoroutinefunction(func)
print(is_coroutine_function(my_coroutine)) # 输出:True
对于一个协程对象,你可以使用await关键字来等待它完成。例如:
python
async def my_coroutine():
print(Coroutine started)
await asyncio.sleep(1)
print(Coroutine finished)
async def main():
task = asyncio.create_task(my_coroutine())
await task
print(Coroutine has completed)
asyncio.run(main())
在这个例子中,my_coroutine是一个协程,它打印出开始和结束的消息,然后等待1秒钟。在main函数中,我们创建了一个任务来运行my_coroutine,然后等待这个任务完成。当任务完成时,我们打印出"Coroutine has completed"。