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

文章 > Python基础教程 > python中如何使用@contextmanage?

python中如何使用@contextmanage?

头像

小妮浅浅

2021-03-29 09:54:292786浏览 · 0收藏 · 0评论

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

1、实现逻辑

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

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

(3)执行 with 时会进入到 __enter__ 方法,然后执行这个生成器,执行时会运行到 with 语法块内的 yield 处

(4)__enter__ 返回 yield 的结果

(5)如果 with 语法块没有发生异常,with 执行结束后,会进入到 __exit__ 方法,再次执行生成器,这时会运行 yield 之后的代码逻辑

(6)如果 with 语法块发生了异常,__exit__ 会把这个异常通过生成器,传入到 with 语法块内,也就是把异常抛给调用者

2、使用实例

Python中,可以使用装饰器 @contextmanager来简化上下文管理器,也就是不需要定义__enter__和__exit__方法。

class MyContent:
    def query(self):
        print('query data')
# 需要引入contextmanager
from contextlib import contextmanager
 
@contextmanager
def make_resource():
    print('first connect to resource')
    yield MyContent()
    print('close resource connection')
 
#应用上下文管理器
with make_resource() as r:
r.query()

以上就是python中使用@contextmanage的方法,大家在操作之前,一定要先就具体的@contextmanage实现逻辑进行了解,然后再展开相关的实例操作。

关注

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

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

《酒店激战》动漫1-5集免费观..| 刚长毛的初一女生年龄范围| 星空传媒天美传媒有限公司| 《我的漂亮老板娘》演员名单| 小丹让我尝尝你的味道是什么歌啊| 樱花视频在线观看免费高清电视剧| 女孩发育图片(真人)| 合欢椅BY春风凤弯椅小说| 白日梦我电视剧免费观看完整版| 小妈爱上继子免费观看电视剧 | 激吻视频| 女生的隐私曝光| 兄弟换麦子4国语中字| 人与动物免费观看电视剧完整版| 乡村玉米地周婶的小说叫什么名字 | 宝~才三根手指就不行啦| 电视剧情满四合院| 100%透光裸妆| 免费观看A片又黄又硬| 色翁荡熄1-13老卫淑芬视频| WWW.XJXJXJ48.GO..| 姐姐片多多免费高清电视剧| 《共享弟夫》动漫在线观看免费 | 爸爸吃女儿奶奶高情商回复| 伦理《少妇的滋味》完整版| 9.1萝卜黄| 老师没戴套子C了我一天视频| 人间水蜜桃MAC923| 15岁初中生用袜子套几几| 《漂亮的女邻居5》HD| 成色18K.8.35MB蓝莓| 舞蹈生带着小玩具练芭蕾视频| 惠灵顿牛排| 《慈母夜吟》完整版| YSL千人千色T9T9T9T9...| 亲吻姐姐| 一边做饭一边狂躁的原因分析| 男生把小困困放到女生困里视频| 厨房春潮她含她的乳第一章| 情满四合院| 伦理《禁忌12》