上下文管理器

上下文管理器是什么?举例
打开文件资源,在操作之后无论情况如何,关闭或释放资源
比如with open(filename,w) as a: print(a)
如何搭建最基础的上下文管理器
使用init enter exit 三种魔术方法构建类
如何快速创建上下文管理器?并实现错误返回的功能
from contextlib import contextmanager
`@contextmanager
def open_file_contextlib(file, mode):
open_file = open(file, mode)
try:
yield open_file
except Exception as exception: # 异常处理
print('We hit an error: ' + str(exception))
finally:
open_file.close