【问题描述】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)-青少年编程等级考试及竞赛题库