韩漫免费漫画在线观看方法,《好好疼爱里面》免费看,年轻漂亮的女士护士内衣,妈妈醉酒后把我当爸爸电视剧

文章 > 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| 白色变态董丝超薄开档连身袜| 欧美电影免费观看电视剧大全 | 主动把乳头放进男朋友嘴巴里| 我把刘姨俩腿扛在肩上是哪一集的| 男生把小困困放到女生困里视频| 摸摸大扔子的视频大全| 禁忌1蜜桃熟了| 黑色蕾丝包臀紧身连衣裙| 女人尝试到更粗大的心理变化| 涂了春药的奶头被众人抡H漫画 | 一母四女共一婿的全诗解读| 美国伦理小樱桃1| 《家政女孩2》免费观看| 美女被咬小头头视频大全图片| 中字HD人妻の亂倫2| 國产麻豆AVMDMD0179| 日日精进久久为功的下一句是| 亚洲一区| 少妇高潮免费观看A片| 妈妈的绣感7| 《无法满足》意大利| 《医务室的小秘密》第一季免费观..| 暴躁妹妹免费观看40集电视剧| 机械革命| DO时不堪入耳的话的| 国产在线观看免费全集电视剧网站| 蜜桃成时熟| 一路向西在线| 日产精品一线二线三线芒果| 俩个人做AJ的视频教程大全| 欧美《禁忌5》| 日韩在线观看免费全集电视剧网站| 少女配狗播放视频| 《黏糊糊的你》动浸免费观看 | 蜜桃熟了