首页 > 解决方案 > 如何中止创建的协程python

问题描述

如何中止创建的协程实例?我的用例是一个接收协程并有条件地为其创建跟踪任务的函数(以便以后可以gather编辑所有这些任务)。

忽略它(不是await直接或间接地)有效,但会给出一个RuntimeWarning. 我可以使用抑制此警告的解决方案。

创建一个任务然后立即取消它会开始执行,而取消会导致其他问题,因此它不可行。

在创建协程之前检查条件是可行的,但会损害可维护性,因为在调用此函数之前,必须在所有位置进行相同的条件检查。

标签: pythonpython-asynciocoroutine

解决方案


使用.close()方法:

async def foo():
    pass
x = foo()
x.close()

程序完成正常,没有警告。


推荐阅读