上下文管理器 (context manager) 是Python2.5开始支持的一种语法,用于规定某个对象(往往是类实例对象)的使用范围。一旦进入或者离开,这会触发相应的生命钩子(enter 和exit)函数,在钩子函数中可以定义,特殊操作例如,对象分配或者释放内存甚至如下的回收文件句柄。调用构建有钩子函数的类实例时,往往依赖形式为with…as…的语法。
with open("file.txt", "w") as f:
f.write("Hello World!")
"""
def __exit__(self, *excinfo): # real signature unknown; restored from __doc__
# __exit__(*excinfo) -> None. Closes the file.
pass
"""
# 离开 with···as···的语法范围将 触发 __exit__ ,在该函数下定义了关闭方法
print(f.closed)