上下文笔记

with内部提供两个内置函数enterexit
enter 在主代码执行之前,exit 在主代码执行之前后,都返回self,自身对象,也可以返回其他

exit()中有四个参数。当程序块中出现异常(exception),exit()的参数中exc_type, exc_value, traceback用于描述异常。我们可以根据这三个参数进行相应的处理。如果正常运行结束,这三个参数都是None。

contextlib是为了加强with语句,提供上下文机制的模块,它是通过Generator实现的。通过定义类以及写enterexit来进行上下文管理虽然不难,但是很繁琐。contextlib中的contextmanager作为装饰器来提供一种针对函数级别的上下文管理机制

contextlib还有连个重要的东西,一个是nested,一个是closing,前者用于创建嵌套的上下文,后则用于帮你执行定义好的close函数。但是nested已经过时了,因为with已经可以通过多个上下文的直接嵌套了。

python闭包

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • contextlib — Context Manager Utilities contextlib - 上下文管理...
    英武阅读 7,928评论 0 52
  • 转载自:http://mp.weixin.qq.com/s/LO1yyFeUA6pR_YPyfDoSig 姓名:梅...
    虐先森阅读 5,272评论 0 1
  • 术语 要使用 with 语句,首先要明白上下文管理器这一概念。有了上下文管理器,with 语句才能工作。下面是一组...
    lmem阅读 2,444评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • 读的什么书:下一个倒下的会不会是华为 阅读有效时间:40分钟 阅读中遇到的问题:总结的时候感觉有很多要说的,语言文...
    丸小怪阅读 1,504评论 0 0

友情链接更多精彩内容