首页IT科技contain python(python中@contextmanager是什么?)

contain python(python中@contextmanager是什么?)

时间2025-07-16 02:48:08分类IT科技浏览5202
导读:本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。...

本文教程操作环境:windows7系统               、Python 3.9.1               ,DELL G3电脑               。

1                       、概念

contextlib模块提供的一个装饰器                       ,用于将一个函数声明上下文管理        ,无需创建一个类或者单独的__enter__()方法和__exit__()方法               ,就可以实现上下文管理                       。

2        、注意

装饰器@contextmanager真正的用法并不是简化上下文管理器                       ,而是去定义上下文管理器的方法        ,是对原来不是上下文管理器的类变成了一个上下文管理器        。

3               、实例

fromcontextlibimportcontextmanager importtime @contextmanager defdemo(label): start=time.time() try: yield finally: end=time.time() print({}:{}.format(label,end-start)) withdemo(counting): n=10000000 whilen>0: n-=1 #counting:1.32399988174

看上面这个例子       ,函数中yield之前的所有代码都类似于上下文管理器中__enter__方法的内容               。而yield之后的所有代码都如__exit__方法的内容                       。如果执行过程中发生了异常                       ,则会在yield语句触发        。

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
python字符串常用的方法(python字符串有几种常见方法)