美文网首页
上下文管理器- with块

上下文管理器- with块

作者: 楼上那位 | 来源:发表于2017-11-24 20:38 被阅读7次

with语句的目的是简化try/finally的使用,保证代码运行完后执行某项操作,即使出现了异常或者其他语句而退出

上下文管理器协议包含 enterexit 两个方法。with 语句开始运行时,会在 上下文管理器对象上调用 enter 方法。with 语句运行结束后,会在上下文管理器对 象上调用 exit 方法,以此扮演 finally 子句的角色。

with open("a.py") as fn:
      src = fn.read(5)

任何一个类实现了上述的两个方法,均可以视为一个管理器,__enter__,__exit__ 也可以手动调用,__exit__ 接收三个参数,分别是异常类型,异常实例,以及traceback对象

 def __enter__(self):  
        ....
        return 'xxxx' 

 def __exit__(self, exc_type, exc_value, traceback):  
       
        if exc_type is ZeroDivisionError: 
            print('Please DO NOT divide by zero!')
            return True 

相关文章

  • python的上下文管理器

    上下文管理器的概念 上下文管理器的任务是代码块执行前准备,代码块执行后收拾。 如何使用上下文管理器? 如何使用上下...

  • Python学习打call第三十一天:上下文管理器

    1.什么是上下文管理 上下文管理器是一个包装任意代码块的对象,上下文管理器保证进入上下文管理器时,每次代码执行的一...

  • 关闭流要点2_with上下文管理_现场还原

    with语句(上下文管理器)with关键字(上下文管理器),可以自动管理上下文资源,无论什么原因跳出with块,都...

  • Python上下文管理器

    1.与装饰器的区别 上下文管理器是装饰器的近亲,装饰器用于包装函数,上下文管理器用于包装任意代码块. 上下文管理器...

  • Python yield使用详解(二)

    上下文管理器和with块 with表达式 常见的with用法格式: 控制代码块的进入/退出 定制你自己的上下文管理...

  • Python上下文管理器

    上下文管理器 概念:实现了上下文协议的对象即为上下文管理器。 上下文管理器的协议: __enter__进入的方法_...

  • python上下文管理器细读

    test 1 上下文管理器,将生成器转化为上下文管理器 test 2 使用上下文管理器,抽象出异常处理 test ...

  • python中上下文管理器

    什么是上下文管理器? 代码的环境就是上下文,实现了上下文管理器协议的类产生的实例就是上下文管理器对象。在类中声名e...

  • Python的上下文管理器

    什么是上下文管理器 上下文管理器是一个对象,它定义了在执行 with 语句时要建立的运行时上下文。 上下文管理器处...

  • 上下文管理器- with块

    with语句的目的是简化try/finally的使用,保证代码运行完后执行某项操作,即使出现了异常或者其他语句而退...

网友评论

      本文标题:上下文管理器- with块

      本文链接:https://www.haomeiwen.com/subject/wmnfbxtx.html