python上下文管理器(with语句)

要使用 with 语句,要明白上下文管理器

有了上下文管理器,with 语句才能工作。

上下文管理协议(Context Management Protocol)

包含方法 __enter__() 和 __exit__(),支持 该协议的对象要实现这两个方法。

上下文管理器(Context Manager):支持上下文管理协议的对象,这种对象实现了 __enter__() 和 __exit__() 方法。

上下文管理器定义执行 with 语句时要建立的运行时上下文, 负责执行 with 语句块上下文中的进入与退出操作。

通常使用 with 语句调用上下文管理器, 也可以通过直接调用其方法来使用。

运行时上下文(runtime context):由上下文管理器创建,通过上下文管理器的 __enter__() 和 __exit__() 方法实现,__enter__() 方法在语句体执行之前进入运行时上下文,__exit__() 在 语句体执行完后从运行时上下文退出。

with 语句支持运行时上下文这一概念

ex:

1 with open('a','w',encoding='utf-8') as f,
2     open('some_file','r',encoding='utf-8') as f_new:
3     f.write('Hello ')
4     f.write('World')
View Code
原文地址:https://www.cnblogs.com/pythonkids/p/7676541.html