一个类只要实现了__enter__()和__exit__()这两个方法,通过该类创建的对象我们就称之为上下文管理器。
上下文管理器可以使用 with 语句,with语句之所以这么强大,背后是由上下文管理器做支撑的,也就是说刚才使用 open 函数创建的文件对象就是就是一个上下文管理器对象。
代码说明:
__enter__表示上文方法,需要返回一个操作文件对象__exit__表示下文方法,with语句执行完成会自动执行,即使出现异常也会执行该方法。
一般情况下,可以使用dir()方法来查看该类是否为上下文管理器。
示例代码1:
print(dir(open('df.html', 'r')))
运行结果:

示例代码2:
from multiprocessing import Pool
pool = Pool(3)
print(dir(pool))
运行结果:

参考博文:
本文介绍了Python中的上下文管理器,指出一个类实现特定两个方法,其创建的对象即为上下文管理器。上下文管理器支撑着with语句,如open函数创建的文件对象就是上下文管理器。还说明了查看类是否为上下文管理器的方法,并给出示例代码。

被折叠的 条评论
为什么被折叠?



