国产成人AV无码一二三区,少女1到100集,国产精品久久久久精品综合紧,巜公妇之诱感肉欲HD在线播放

文章 > Python高级 > 上下文管理器在python中的原理

上下文管理器在python中的原理

头像

小妮浅浅

2021-03-29 09:59:134816浏览 · 0收藏 · 0评论

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

1、原理

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

2、注意

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

3、实例

class TestContext:
 
    def __enter__(self):
        print('__enter__')
        return 1
 
    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)
 
with TestContext() as t:
    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 语句块之后被调用。

以上就是上下文管理器在python中的原理,通过本篇文章的学习,我们可以了解具体with的执行方法,以及两种方法的实现,希望对大家使用上下文管理器有所帮助。更多Python高级指路:python高级

关注

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

韩国色情巜肉欲教室2| 男人女人免费观看40集电视剧| 皇空无痕MV免费视频观看| 我老公跟我一晚上用很多卫生纸 | 美国《性船》无删减| 电影《乳妓》在线观看| 日韩欧洲亚洲SUV| 《厨房激战5》完整版在线观看| 狗配人的大片视频大全| (NP、高H、纯肉、真空)| 免费观看己满十八岁电视剧姐弟| 性高湖久久久久久久久AAAAA| 进击的巨人第一季| 老师没戴套子C了我一天视频| 爸爸缓慢有力送女儿的文案| 情趣刑具| 做一次爱下面多久才能恢复| 免费观看大片哔哩哔哩| 儿子双飞妈妈和女儿的小说| 麻花传MV在线观看第15集预告| 强行挺进朋友漂亮人妻身体| 初中小姐姐脚丫踩在男生困困| 《一滴都不许漏》何泽城林荫| 电影《乳妓》在线观看| 《教授与女学生》伦理| 《法国空乘9》| 《初尝禁果》2:做爰电影 | 破浪男女在线观看电影完整版| 《推油》完整版播放时间| WWW.CRI.8888888..| 日韩电影在线观看高清版电视剧| 《灭火宝贝2》美国版| 《性呻吟》伦理| 囚禁空姐》电影免费观看| 少妇激情偷公乱140章| 美女被咬小头头视频大全 | 扌暴辶鬲和扌暴辶的区别 | 韩漫网址| 400部精品国偷自产在线| 粗大挺进亲女小雅小| 我在做饭他在下添好爽好硬