python 定义上下文管理器生成器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 定义上下文管理器生成器相关的知识,希望对你有一定的参考价值。

from contextlib import contextmanager

@contextmanager
def connect_to_db(address):
    db = CrappyDBConnection(address)
    try:
        yield db
    except ConnectionError:
        logging.exception('Connection dropped')
        db.cleanup('rollback')
    else:
        db.cleanup('commit')
    db.disconnect()

# USE LIKE
with connect_to_db(address) as db:
    ...

以上是关于python 定义上下文管理器生成器的主要内容,如果未能解决你的问题,请参考以下文章

python 定义可用作装饰器的上下文管理器

python 定义上下文管理器类

Python上下文管理器

Python高级语法-私有属性-with上下文管理器(4.7.3)

python之上下文管理器

吃透Python上下文管理器