Python context,

  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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: