python中contextmanager裝飾的方法

daqianmen發表於2021-09-11

python中contextmanager裝飾的方法

(推薦作業系統: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學習指路:

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/1727/viewspace-2830540/,如需轉載,請註明出處,否則將追究法律責任。

相關文章