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