简介
1、什么是上下文管理器?
上下文管理器是一种实现了上下文管理协议(Context Management Protocol)的对象,它通过定义__enter__()
和__exit__()
两个特殊方法来实现资源的获取和释放。上下文管理器通常使用with语句进行调用,确保资源在使用完毕后能够被正确释放。
python中上下文管理器,用于管理资源的获取和释放。以一种简洁且安全的方式来处理资源的打开、关闭和异常处理,使得代码更加可读、可维护,同时增强了程序的健壮性。
2、自定义上下文管理器:
with open('test.txt') as f:
data = f.readlines()
注:open()
函数返回的文件对象是一个上下文管理器,通过with语句来使用它。在代码块执行完毕后,文件对象的__exit__()
方法会自动关闭文件,无需手动调用close()
方法。
2、自定义上下文管理器
class ContextManager:
def __init__(self, filename):
self.filename = filename
self.open_file = None
def __enter__(self):
print(self.filename)
self.open_file = open(self.filename, 'r')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
self.open_file.close()
def read_file(self):
return self.open_file.readline()
def with_test():
try:
with ContextManager("test_file.txt") as cm:
data = cm.read_file()
print(data)
except Exception as e:
raise e
if __name__ == '__main__':
with_test()
标签:__,管理器,python,self,file,上下文,open
From: https://www.cnblogs.com/lanjianhua/p/18351113