版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u011240016/article/details/84961986
上下文管理器
只有理解了上下文管理器,才能更好理解with
的工作原理。
上下文管理协议,这个协议主要包含两个方法:
__enter__()
__exit__()
协议一般是管定标准的,具体执行要落实到对象,而支持上下文管理协议的对象必须要实现上面的两个方法。
上下文管理器
实现了上面提到的__enter__()
和__exit__()
方法的支持上下文管理的对象。
通常使用with
语句来调用上下文管理器。
运行时上下文
由上下文管理器创建。__enter__()
进入运行时上下文,__exit__()
退出运行时上下文。
上下文表达式
跟在with
后面的表达式,这个表达式要反悔一个上下文管理器对象。
语句体
with
语句包裹起来的代码块。执行语句体前调用上下文管理器的__enter__()
方法,执行完毕后,调用`exit()方法。
以文件打开关闭作为例子:
with open('test.csv') as f:
for line in f:
print(line)
在with
语句结束后,都可以关闭文件句柄。
END.