| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python上下文管理器 -> 正文阅读 |
|
[Python知识库]Python上下文管理器 |
在代码执行过程中会进行频繁的I/O操作,而计算资源往往是有限的,需要进行资源管理,保证这些资源在使用过后得到释放,防止发生资源泄露。Python中使用上下文管理器(context manager)进行资源管理,比如我们经常用到的 下面先来介绍一下with关键字在文件读写中的应用,简单了解上下文管理器的功能。 with语句在Python文件及目录处理方法中介绍了读写大文件建议使用with语句,with语句会进行资源的自动管理。文件很多的情况下也会导致资源泄露,下面来打开100000个文件,不进行文件关闭操作:
执行会报如下错误:
原因就是打开了太多文件而没有及时关闭导致了资源泄露,造成系统崩溃。完成处理后需要对文件进行关闭操作:
使用 with 语句可以完成自动分配并且释放资源,比上面的写法更加简洁:
上下文管理器创建基于类的上下文管理器可以使用类来创建上下文管理器,需要保证这个类包括两个方法: 下面来模拟 Python 的打开、关闭文件操作:
执行结果:
可以看到执行顺序为:
@contextmanager 装饰器可以使用 仍以打开、关闭文件为例:
其中 小结上下文管理器可确保用过的资源得到迅速释放,通常和 with 语句一起使用,大大提高了程序的简洁度。另外需要注意的是,编写基于类或者生成器的上下文管理器时,记住不要忘记释放资源。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 5:39:20- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |