python中contextmanager装饰的方法

759次阅读
没有评论

python中contextmanager装饰的方法

contextmanager说明

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

装饰器 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装饰的方法,希望能对大家有所帮助。

神龙|纯净稳定代理IP免费测试>>>>>>>>天启|企业级代理IP免费测试>>>>>>>>IPIPGO|全球住宅代理IP免费测试

相关文章:

版权声明:wuyou2021-05-03发表,共计608字。
新手QQ群:570568346,欢迎进群讨论 Python51学习