Python自定义上下文管理器

发布时间:2024年01月18日

在Python中,可以使用contextlib模块来自定义上下文管理器。上下文管理器通常用于资源的分配和释放,例如文件的打开和关闭、数据库连接的建立和断开等。

下面是一个示例,演示如何使用上下文管理器来打开和关闭文件:

from contextlib import contextmanager

@contextmanager
def open_file(filename, mode):
    f = open(filename, mode)
    try:
        yield f
    finally:
        f.close()

with open_file('example.txt', 'w') as f:
    f.write('Hello World!')

在上面的代码中,open_file函数使用yield关键字将控制权交给调用方,并返回一个生成器。这个生成器在执行yield语句时,会暂停执行,并将f对象作为上下文管理器的结果返回给with语句。

with语句块执行完毕时,会调用生成器的finally块,来执行资源的释放操作,确保文件被正确关闭。

使用上下文管理器可以更方便地管理资源的分配和释放,避免了手动处理资源释放的繁琐操作。

文章来源:https://blog.csdn.net/xukris/article/details/135665915
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。