当前位置: 首页 > SEO学院SEO知识

Python contextlib 模块使用示例

来源:未知 浏览量:126次

看这个模块要先看with as的用法最常用的方法就是打开一个文件:
代码如下:
with open(“filename”) as f:
f.read()

with可以调用一个上下文管理器,产生运行时的上下文环境。上下文管理器主要定义两个方法__enter__优化策略__enter____exit__。__enter__返回上下文里操作的对象如f。__exit__是销毁对象和异常处理。

contextlib模块对外有三个接口
contextmanager装饰器装饰的函数必须是一个生成器。然后返回一个函数在函数调用的时候返回一个上下文管理器。

nested为了一次调用多个上下文管理器的时候用将所有上下文管理器里的__enter__放到vars里一次yield返回网站营销方案一次yield返回然后unpack。就产生多个对象了。__exit__都放到exits列表里在finally里统一调用这些__exit__在调用上下文管理器产生异常时如何处理。如果返回false,将会把异常继续抛出返回true则不会抛出异常。

closing这个用过没想到的是竟然是个类而不是个函数。就是把有close方法却没有__exit__方法的对象变成一个上下文管理器。代码很简单:
代码如下:
class closing(object):
def __init__(self, thing):
self.thing = thing
def __enter__(self):
return self.thing
def __exit__(self, *exc_info):
self.thing.close()

展开全部内容