什么是上下文管理器
上下文管理器
是您可以在with
语句中使用的任何 Python
对象
例如:您可以使用with
关键字读取文件
with open("./file.txt") as f:
data= f.read()
print(data)
运行时,open("./file.txt")
会创建一个称为上下文管理器
的对象。
当with
块完成时,它确保关闭文件,即使有异常。
如自定义上下文管理器,那类中必须要有下面两个魔术方法
def __enter__(self):
pass
def __exit__(self, exc_type, exc_val, exc_tb):
"""
:param exc_type: 异常类型
:param exc_val: 值
:param exc_tb: 回溯信息
:return:
"""
pass
object.__enter__(self):
输入与此对象相关的运行时上下文。with
语句会将此方法的返回值绑定到该as
语句子句中指定的目标变量上。
object.__exit__(self, exc_type, exc_val, exc_tb):