【python】contextlib的使用

本质上解决一个上下文管理的问题

上下文管理解决的问题:

做一件事前后都有事情要做,而做这件事情本身的时候可能有错误出现。

为了保证即使这件事情出了错,整个事情也没有任何遗留的问题。

解决方式:

方法零:使用一个函数wrapper, try except finally

方法一:使用with管理上下文,实现一个类,完成__enter__和__exit__方法

方法二:使用with管理上下文,实现一个函数,用contextlib中的contextmanager实现。

方法二实现,写一个函数,以生成器为界限

生成器之前为前面要跑的代码,生成器之后为之后要跑的代码,生成器返回的是with as 的东西

原文地址:https://www.cnblogs.com/yesuuu/p/13320807.html