首页 > 文章列表 > python上下文管理器closing的应用

python上下文管理器closing的应用

python上下文管理器
348 2022-08-07

1、应用场景

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

2、实例

上下文管理closing实现。

class closing(object):    
# help doc here    
def __init__(self, thing):        
self.thing = thing    
def __enter__(self):        
return self.thing    
def __exit__(self, *exc_info):        
self.thing.close()

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