python如何创建支持with语句的对象

python如何创建支持with语句的对象

小编给大家分享一下python如何创建支持with语句的对象,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

创建支持「with」语句的对象

举例而言,我们都知道如何使用「with」语句打开文件或获取锁,但是我们可以实现自己上下文表达式吗?是的,我们可以使用「enter」和「exit」来实现上下文管理协议:

python如何创建支持with语句的对象

classConnection:def__init__(self):...def__enter__(self):#Initializeconnection...def__exit__(self,type,value,traceback):#Closeconnection...withConnection()asc:#__enter__()executes...#conn.__exit__()executes

这是在 Python 中最常见的实现上下文管理的方法,但是还有更简单的方法:

fromcontextlibimportcontextmanager@contextmanagerdeftag(name):print(f"<{name}>")yieldprint(f"</{name}>")withtag("h2"):print("ThisisTitle.")

上面这段代码使用 contextmanager 的 manager 装饰器实现了内容管理协议。在进入 with 块时 tag 函数的第一部分(在 yield 之前的部分)就已经执行了,然后 with 块才被执行,最后执行 tag 函数的其余部分。

看完了这篇文章,相信你对“python如何创建支持with语句的对象”有了一定的了解,如果想了解更多相关知识,欢迎关注恰卡编程网行业资讯频道,感谢各位的阅读!

发布于 2022-03-13 23:42:42
收藏
分享
海报
0 条评论
42
上一篇:css选择器和文本样式实例分析 下一篇:python如何实现只包含关键字参数的函数
目录

    推荐阅读

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码