Python context,
本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。
1、概念
是contextlib模块提供的一个装饰器,用于将一个函数声明上下文管理.上下文管理,无需创建类或单独的__enter__()方法和__exit__()方法即可实现。
2、注意
decorator @contextmanager的真正用途不是简化上下文管理器,而是转到定义上下文管理器的方法,将一个不是上下文管理器的类转换成上下文管理器。
3、实例
fromcontextlibimportcontextmanager
进口时间
@上下文管理器
defdemo(标签):
start=time.time()
尝试:
产量
最后:
end=time.time()
打印( {}:{} )。格式(标签,结束-开始))
withdemo(计数):
n=10000000
whilen0:
n-=1
# Counting33601.3239988174看上面的例子。函数中yield之前的所有代码都类似于上下文管理器中__enter__方法的内容。而且yield之后的所有代码都像__exit__方法的内容。如果在执行过程中出现异常,将在yield语句中触发。
这就是python中@contextmanager的基本介绍。我相信你对这种直接实现上下文管理器的方法还是很感兴趣的。看完文章,可以运行上面的代码来体验一下。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。