python上下文管理器closing的应用

python上下文管理器closing的应用

1、应用场景

closing 适用于提供了 close() 实现的对象,比如网络连接、数据库连接等,也可以在自定义类时通过接口 close() 来执行所需要的资源“清理”工作。

2、实例

上下文管理closing实现。

classclosing(object):
#helpdochere
def__init__(self,thing):
self.thing=thing
def__enter__(self):
returnself.thing
def__exit__(self,*exc_info):
self.thing.close()

上下文管理器会将包装的对象赋值给 as 子句的 target 变量,同时保证打开的对象在 with-body 执行完后会关闭掉。closing 上下文管理器包装起来的对象必须提供 close() 方法的定义,否则执行时会报 AttributeError 错误。


发表评论

后才能评论