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

【问题描述】so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

扩展ClassManage班级信息管理类,使之能将班级信息保存到“学生信息.pkl”中,并能从这个文件读取班级信息。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用二进制形式保存学生信息输出结果:so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用二进制形式保存学生信息so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【题前思考】so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

根据问题描述,填写表7-2-7。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

表7-2-7 问题分析so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用二进制形式保存学生信息so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【解题思路】so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

本活动和前面活动的操作流程完全相同,不同的是调用了pickle模块,源程序仍然包含3个方面的内容:so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

一是导入模块文件。程序需要os、pickle及调用学生管理类中的班级管理模块ClassManager,因此需要导入这3个模块的内容。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

二是定义一个类,实现保存班级信息的功能。程序的思路和活动一类似,不同的是调用了pickle.dump( )函数及pickle.load( )函数。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

三是通过调用类文件,使用pickle模块传递数据。传递的数据保存在pkl文件中。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【程序代码】so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用二进制形式保存学生信息so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【代码分析】so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

①:导入pickle模块。pickle模块实现了对一个Python对象结构的二进制序列化和反序列化。"pickling"是将Python对象及其所拥有的层次结构转化为一个字节流的过程,而"unpickling"是相反的操作,会将字节流转化回一个对象层次结构。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

②:以ClassManager为父类,定义一个子类ClassManager_pickle,子类可以使用父类的方法、属性并新增自己特有的方法和属性。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

③:初始化对象。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

④:以写二进制(write binary)的方式打开文件,将文件打开后赋给变量f,其内部操作执行完后会自动关闭。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑤:将对象的全部信息保存到文件f中。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑥:以二进制读的方式打开文件,将信息保存在文件f中。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑦:从文件中读取信息还原为班级管理对象并赋值给res。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑧:创建班级。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑨:添加学生。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

⑩:将班级保存到pkl文件。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用二进制形式保存学生信息:把pkl文件中的信息读取出来还原成班级对象cls2。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用二进制形式保存学生信息:调用cls2.show( )方法显示班级信息,可以看出显示信息与原始信息一致。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

 so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

【技术全貌】so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

pickle是Python中进行二进制序列化处理的模块,它将Python数据编码以二进制形式保存为对应的文档,pickle也包含了dumps、dump、loads、load 4种方法,见表7-2-8。so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

表7-2-8 pickle的4种方法so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

使用二进制形式保存学生信息so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

 so1100150满分答卷(100150.com)-青少年编程等级考试及竞赛题库

关 键 词

学生信息

相关教程

提示声明

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

猜你喜欢