首页IT科技上下文命令选项卡的用途(上下文管理器在python中的原理)

上下文命令选项卡的用途(上下文管理器在python中的原理)

时间2025-09-13 01:36:43分类IT科技浏览4968
导读:本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。...

本文教程操作环境:windows7系统               、Python 3.9.1               ,DELL G3电脑               。

1                      、原理

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

2       、注意

上下文管理器一定能够保证退出步骤的执行        。如果进入上下文管理器                      ,根据定义               ,一定会有退出步骤                      。即使内部的代码抛出异常,这点也成立               。事实上                      ,如果退出步骤处理合适                      ,那么上下文管理器的退出代码为处理这类异常提供一个机会(虽然不强制要求一定要处理异常)        。

3        、实例

classTestContext: def__enter__(self): print(__enter__) return1 def__exit__(self,exc_type,exc_value,exc_tb): print(exc_type:%s%exc_type) print(exc_value:%s%exc_value) print(exc_tb:%s%exc_tb) withTestContext()ast: print(t:%s%t) #Output: #__enter__ #t:1 #exc_type:None #exc_value:None #exc_tb:None

在这个例子中,我们定义了 TestContext 类               ,它分别实现了 __enter__ 和 __exit__ 方法                      。

这样一来                      ,我们就可以把 TestContext 当做一个「上下文管理器」来使用       ,也就是通过 with TestContext() as t 方式来执行               。

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

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

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

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
开始菜单磁贴被锁定(关闭开始菜单中的动态磁贴功能) cpu组成图解(cpu详解)