【python中级】contextlib上下文管理
1、背景
1.1 上下文管理器是干什么的?
简而言之:获取资源、安全的释放资源!
1.2 上下文装饰器:
实现了上下文协议的class类。
即在class类里面实现__enter__和__exit__方法,该类就是一个上下文管理器。
当创建的实例化class类对象就获得了一个上下文管理的对象。
上下文协议:__enter__ 、__exit__
__enter__ 表示上文方法,需要返回一个操作文件对象;
__exit__ 表示下文方法,with语句执行完成后会自动执行,即使出现异常也会执行该方法。
1.3 用在哪里?
你可能开发的过程中会遇到:
Too many open files...
Can not connect to MySQL server Too many connections...
因为操作系统允许你打开的最大文件数量是有限的;
因为