一个类只要实现了__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))
运行结果: