投稿  收藏 
使用二进制形式保存学生信息

【问题描述】

扩展ClassManage班级信息管理类,使之能将班级信息保存到“学生信息.pkl”中,并能从这个文件读取班级信息。

使用二进制形式保存学生信息输出结果:

使用二进制形式保存学生信息

【题前思考】

根据问题描述,填写表7-2-7。

表7-2-7 问题分析

使用二进制形式保存学生信息

【解题思路】

本活动和前面活动的操作流程完全相同,不同的是调用了pickle模块,源程序仍然包含3个方面的内容:

一是导入模块文件。程序需要os、pickle及调用学生管理类中的班级管理模块ClassManager,因此需要导入这3个模块的内容。

二是定义一个类,实现保存班级信息的功能。程序的思路和活动一类似,不同的是调用了pickle.dump( )函数及pickle.load( )函数。

三是通过调用类文件,使用pickle模块传递数据。传递的数据保存在pkl文件中。

【程序代码】

使用二进制形式保存学生信息

【代码分析】

①:导入pickle模块。pickle模块实现了对一个Python对象结构的二进制序列化和反序列化。"pickling"是将Python对象及其所拥有的层次结构转化为一个字节流的过程,而"unpickling"是相反的操作,会将字节流转化回一个对象层次结构。

②:以ClassManager为父类,定义一个子类ClassManager_pickle,子类可以使用父类的方法、属性并新增自己特有的方法和属性。

③:初始化对象。

④:以写二进制(write binary)的方式打开文件,将文件打开后赋给变量f,其内部操作执行完后会自动关闭。

⑤:将对象的全部信息保存到文件f中。

⑥:以二进制读的方式打开文件,将信息保存在文件f中。

⑦:从文件中读取信息还原为班级管理对象并赋值给res。

⑧:创建班级。

⑨:添加学生。

⑩:将班级保存到pkl文件。

使用二进制形式保存学生信息:把pkl文件中的信息读取出来还原成班级对象cls2。

使用二进制形式保存学生信息:调用cls2.show( )方法显示班级信息,可以看出显示信息与原始信息一致。

 

【技术全貌】

pickle是Python中进行二进制序列化处理的模块,它将Python数据编码以二进制形式保存为对应的文档,pickle也包含了dumps、dump、loads、load 4种方法,见表7-2-8。

表7-2-8 pickle的4种方法

使用二进制形式保存学生信息

 

关 键 词

学生信息

相关教程

提示声明

  • 免责声明:本站资源均来自网络或者用户投稿,仅供用于学习和交流:如有侵权联系删除!

猜你喜欢