Python中如何使用count,Python中如何使用enumerate

  Python中如何使用count,Python中如何使用enumerate

  本教程运行环境:windows7系统,Python 3.9.1,DELL G3电脑。

  1、实现逻辑

  (1)初始化一个_GeneratorContextManager类,构造方法接受一个生成器Gen。

  (2)该类实现上下文管理器协议__enter__和__exit__

  (3)执行with时,将进入__enter__方法,然后执行这个生成器,它将运行到with语法块中的yield。

  _ _ enter _ _返回yield的结果

  (5)如果with语法块中没有异常,则在执行with后,会进入__exit__方法,再次执行生成器,然后运行yield后的代码逻辑。

  (6)如果with语法块中发生异常,__exit__会将异常通过生成器传递到with语法块中,也就是将异常抛出给调用方。

  2、使用实例

  在Python中,可以使用decorator @contextmanager来简化上下文管理器,即不需要定义__enter__和__exit__方法。

  classMyContent:

  defquery(self):

  打印(查询数据)

  需要引入# contextmanager

  fromcontextlibimportcontextmanager

  @上下文管理器

  defmake_resource():

  打印( firstconnecttoresource )

  yieldMyContent()

  打印( closeresourceconnection )

  #应用程序上下文管理器

  withmake_resource()asr:

  R.query()以上是python中使用@contextmanage的方法。在操作之前,首先要了解具体的@contextmanage实现逻辑,然后展开相关的示例操作。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

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