Python上下文,python底层运行原理

  Python上下文,python底层运行原理

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

  1、原理

  其实with是python中的关键字,可以打开一个对象的上下文管理器协议。其实在操作文件的时候,并不是不需要写文件的关闭,而是文件的关闭操作已经写在with的上下文管理器中的协议方法里了。当文件操作完成后,with语句将自动调用上下文管理器中的close语句来关闭文件资源。

  2、注意

  上下文管理器一定能够保证退出步骤的执行.如果你进入上下文管理器,根据定义,必须有一个退出步骤。即使内部代码抛出异常也是如此。事实上,如果正确处理了退出步骤,上下文管理器的退出代码就提供了处理这种异常的机会(尽管处理异常并不是强制性的)。

  3、实例

  类测试上下文:

  def__enter__(self):

  打印( __enter__ )

  返回1

  def__exit__(self,exc_type,exc_value,exc_tb):

  打印( exc_type:%s%exc_type

  打印( exc_value:%s%exc_value)

  打印( exc_tb:%s%exc_tb)

  withTestContext()ast:

  打印( t:%s%t )

  #输出:

  # __输入_ _

  #t:1

  #exc_type:None

  #exc_value:None

  # exc _ tb:None在此示例中,我们定义了TestContext类,该类分别实现了__enter__和__exit__方法。

  这样,我们就可以将TestContext作为“上下文管理器”来使用,即通过with TestContext()作为t的方式来执行它.

  从输出结果中,我们可以看到具体的执行过程如下:

  __enter__在进入with语句块之前调用,该方法的返回值赋给with之后的t变量;

  __exit__在with语句块执行后调用。

  以上是python中上下文管理器的原理。通过本文的学习,我们可以知道with的具体实现方法以及这两种方法的实现。希望对你使用上下文管理器有帮助。更多python高级方向:Python高级

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

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