我想创建可选的异步信号量。
在asyncio.Semaphore
不支持None
值的情况下,如果指定了连接限制,我决定创建asyncio.Semaphore
,否则就创建某种虚拟对象。
有一个contextlib.nullcontext
,但它只支持同步的with
。
我创造了自己的假人:
@contextlib.asynccontextmanager
async def asyncnullcontext():
yield None
有没有默认的异步空上下文管理器?
发布于 2020-04-28 11:09:30
发布于 2022-08-31 05:55:05
从Python开始,3.10+可以同时使用contextlib.nullcontext()
作为同步上下文管理器和异步上下文管理器。
from contextlib import nullcontext
def works():
with nullcontext():
pass
async def works_too():
async with nullcontext():
pass
(这个问题明确提到Python3.7,但我想越来越多的人可能会发现它而不需要这个版本,因此这个答案)
https://stackoverflow.com/questions/61479059
复制相似问题