如何中止创建的协程 python

How to abort created coroutine python

如何中止创建的协程实例?我的用例是一个接受协程并有条件地为它创建一个跟踪任务的函数(这样所有的任务都可以在以后 gathered)。

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

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

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

使用.close()方法:

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

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