• 技术文章 >Python技术 >Python基础教程

    python中contextmanager装饰的方法

    小妮浅浅小妮浅浅2021-05-10 09:54:57原创1898

    (推荐操作系统:windows7系统、Python 3.9.1、DELL G3电脑。)

    1、说明

    contextmanager 用于对生成器函数进行装饰,生成器函数被装饰以后,返回的是一个上下文管理器,其 enter() 和 exit() 方法由 contextmanager 负责提供,而不再是之前的迭代子。被装饰的生成器函数只能产生一个值,否则会导致异常 RuntimeError;产生的值会赋值给 as 子句中的 target,如果使用了 as 子句的话。下面看一个简单的例子。

    2、装饰器 contextmanager实例

            from contextlib import contextmanager
     @contextmanager
    def demo():    
    print '[Allocate resources]'    
    print 'Code before yield-statement executes in __enter__'    
    yield '*** contextmanager demo ***'    
    print 'Code after yield-statement executes in __exit__'    
    print '[Free resources]'
     
    with demo() as value:    
    print 'Assigned Value: %s' % value

    以上就是python中contextmanager装饰的方法,希望能对大家有所帮助。更多Python学习指路:python基础教程

    专题推荐:python contextmanager
    品易云
    上一篇:python生成器切片的实现 下一篇:python上下文管理器closing的应用

    相关文章推荐

    • python中@contextmanager是什么?• python生成器函数的特点• python生成器调用方法引发异常• python生成器如何进行解析• python如何使用__iter__()展现外部状态• python生成器切片的实现

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网