![](https://img-blog.csdnimg.cn/20210818014818441.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Python高级编程
文章平均质量分 60
这里有不少Python编程从业者仍不清楚的高级特性,虽然在很多人的博客里,零零散散地存在着这些高级特性的痕迹,但都不深入,都不够系统。本专栏将会带你看到,Python并不仅仅是你看到的那样,有许多精彩的特性需要你去挖掘,欢迎你的到来!相信可以帮助你站在更高的层次去掌控自己的代码!
v.xpace
我,程序员!
展开
-
Python上下文管理器使用的时机
一般来说,适合使用上下文管理器的情况都涉及确保某种资源以一种期望的方式被初始化和反初始化,或尽力避免重复(尤其是异常处理)。 资源清理 打开和关闭资源是编写上下文管理器的重要因素之一,确保发生异常时正确关闭资源往往很重要,这样可以避免最终随着时间的推移而产生很多的僵尸进程。 上下文管理器的优势就在于,通过在__enter__方法中打开资源并返回它,可以保证__enter__方法能执行,并且在异常出现之前关闭这个资源(这次因为被包装的代码块的内部异常会被__exit__方法捕获)。 考虑如下这个打开P原创 2021-08-18 02:35:35 · 90 阅读 · 0 评论 -
Python上下文管理器的语法
考虑一个常见的用例——打开文件,通过使用Python内置的open函数打开文件,打开一个文件后,关闭文件就是你的责任了,如下所示: try: f = open('path/to/filename', 'r') content = f.read() finally: f.close() 使用finally子句确保无论发生什么,文件都将被关闭。 with语句 如何使用上下文管理器完成同样的功能——打开文件并确保被正确关闭?上下文管理器在Python2.5中引入,并新增了对应原创 2021-08-18 02:14:35 · 192 阅读 · 0 评论 -
Python上下文管理器简介
上下文管理器是装饰器的近亲,与装饰器类似,它们都是包装其他代码的工具。然而装饰器只能包装用于定义的代码块(函数、类等),而上下文管理器可以包装任意格式的代码块。大多数时候,上下文管理器与装饰器的作用等价,大多数项目提供的API都允许使用其中任意一种方式。 上下文管理器的定义 上下文管理器是一个可以包装任意代码块的对象。上下文管理器保证进入上下文管理器时,每次代码执行的一致性,而退出上下文管理器时,相关资源会被正确回收。 需要注意的是,上下文管理器一定能够保证退出步骤的执行。如果进入上下文管理器,根据定原创 2021-08-18 02:04:31 · 171 阅读 · 0 评论