源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Python contextlib模块使用示例

  • 时间:2021-04-30 20:25 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Python contextlib模块使用示例
看这个模块要先看with as的用法,最常用的方法就是打开一个文件:
[u]复制代码[/u] 代码如下:
with open(“filename”) as f: f.read()
with可以调用一个上下文管理器,产生运行时的上下文环境。上下文管理器主要定义两个方法,__enter__,__exit__。__enter__返回上下文里操作的对象,如f。__exit__是销毁对象和异常处理。 contextlib模块对外有三个接口, contextmanager装饰器,装饰的函数必须是一个生成器。然后返回一个函数,在函数调用的时候返回一个上下文管理器。 nested为了一次调用多个上下文管理器的时候用,将所有上下文管理器里的__enter__放到vars里,一次yield返回,然后unpack。就产生多个对象了。__exit__都放到exits列表里,在finally里统一调用,这些__exit__在调用上下文管理器产生异常时,如何处理。如果返回false,将会把异常继续抛出,返回true则不会抛出异常。 closing,这个用过,没想到的是竟然是个类,而不是个函数。就是把有close方法却没有__exit__方法的对象变成一个上下文管理器。代码很简单:
[u]复制代码[/u] 代码如下:
class closing(object):     def __init__(self, thing):         self.thing = thing     def __enter__(self):         return self.thing     def __exit__(self, *exc_info):         self.thing.close()
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部