学完「类的实践」,动手做一做。做完点开参考答案对一对。
给记账本加一个 笔数() 方法,返回账目数量。
下面是要放进 类 记账本 的方法片段:
函数 笔数()
返回 长度(自己.条目)
解析:记账本已经把全部账目放在
自己.条目,直接取列表长度即可。
给记账本加一个 最后一笔() 方法:没有账目时返回 空,否则返回最近加入的账目对象。
下面是要放进 类 记账本 的方法片段:
函数 最后一笔()
如果 长度(自己.条目) == 0
返回 空
返回 自己.条目[-1]
解析:先处理空列表,避免取不存在的元素;
[-1]取得列表最后一项。这里不会提前泄露下一题的筛选和累加方法。
给「记账本」加一个方法 总收入(),返回所有「收入」类账目的金额之和(别抄结余里的代码,单独写一个方法)。
下面是要放进 类 记账本 的方法片段:
函数 总收入()
设 总 = 0
遍历 自己.条目 每个 条
如果 条.种类 == "收入"
总 = 总 + 条.金额
返回 总
解析:这和
结余()的前半段几乎一样——遍历所有条目,只把种类 == "收入"的累加起来。总 = 总 + 条.金额是第三章的累加模式。注意设 总 = 0在遍历之前,累加要有个起点。
18-班级成绩册,再比较它和本课记账本:两者都用一个类表示单条记录,再用另一个类管理许多记录。接下来:示例索引 —— 看「18-班级成绩册」,那是另一个用类写的完整项目(学生 + 班级,还带校验和汇总)。