當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python contextlib.aclosing用法及代碼示例


用法:

class contextlib.aclosing(thing)

返回一個異步上下文管理器,該管理器在塊完成時調用 thingaclose() 方法。這本質上相當於:

from contextlib import asynccontextmanager

@asynccontextmanager
async def aclosing(thing):
    try:
        yield thing
    finally:
        await thing.aclose()

值得注意的是,aclosing() 支持在異步生成器因break 或異常而提前退出時對它們進行確定性清理。例如:

from contextlib import aclosing

async with aclosing(my_generator()) as values:
    async for value in values:
        if value == 42:
            break

這種模式確保生成器的異步退出代碼在與其迭代相同的上下文中執行(以便異常和上下文變量按預期工作,並且退出代碼在它所依賴的某些任務的生命周期之後不會運行)。

3.10 版中的新函數。

相關用法


注:本文由純淨天空篩選整理自python.org大神的英文原創作品 contextlib.aclosing。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。