开发者可以使用内置的contextlib模块来处理自己所编写的对象和函数,使它们能够支持with语句。该模块提供了名为contextmanager的修饰器。函数只需要经过contextmanager修饰,即可用在with语句之中。这样做比标准写法更便捷。如果按照标准方式来做,那么要定义新类,并提供名为__center__和__exit__的特殊方法 from contextlib impor
1,装饰器: 装饰器是一种简单的记号而已,有如下等价的转换规则(带不带参数的装饰器都一样,只要是一个可调用对象即可)。 @foo def bar: pass 等价于: x = foo bar = x(bar) '----------------' @foo('abc') def bar: pass 等价于: x = foo('abc') bar = x