如果我有一个包装资源的类,例如sqlite
数据库连接或文件,是否有办法with
在我的对象超出范围或被收集时使用该语句关闭资源?
为了澄清我的意思,我想避免这种情况:
class x:
def __init__(self):
# open resource
def close(self): # or __del__, even worst
# close resource
但是以这样一种方式使资源始终被释放,如
with open('foo') as f:
# use resource