【周末】Python面向对象编程
Python 面向对象编程实战
直播前准备
课程目标
- 掌握 Pythonn 面向对象编程。
- 掌握 Pytest 测试框架的基本使用
- 掌握 Python 文件读写。
实战练习
需求说明
- 原需求参考:学生管理系统
实战思路
根据需求,明确相关对象
相关知识点:
- 定义学生类 Student,学生信息包含。:
- 编号:
sid
- 姓名:
name
- 年龄:
age
- 性别:
gender
- 编号:
- 定义管理类 StudentManagement,定义对学生数据的增删改查功能函数,并编写断言,函数功能实现先设置为空。
实现功能函数
相关知识点:
- 根据需求与设计,定义好每个功能函数的测试用例。
- 实现添加学生方法(add)
- 方法参数为 Student 对象。
- 返回是否添加成功的结果。
- 要求编号不可重复。
- 实现通过学号查询学生方法(get)
- 参数为学号
- 如果学生存在,则输出学生信息,不存在输出提示
- 返回是否查询成功
- 实现通过姓名查询学生方法(get_by_name)
- 参数为姓名
- 实现通过编号修改学生信息方法(update)
- 参数为学号
- 如果学生存在,则进行修改,不存在输出提示
- 返回是否修改成功
- 实现通过学号删除学生方法(delete)
- 参数为学号
- 如果学生存在,则进行删除,不存在输出提示,并返回是否删除成功
- 如果学生存在,则输出学生信息(同名学生全部输出),不存在输出提示
- 返回是否删除成功
- 实现显示所有学生信息方法(list)
- 输出所有学生信息
实现入口函数与输入操作
相关知识点:
- 实现控制方法做为程序执行入口 (process_management)
- 控制菜单的输出与功能的选择
- 对用户输入内容进行输入校验
- 根据用户输入内容选择不同功能执行
- 因程序中需要多次对编号及姓名进行输入,故抽取方法获取对应的数据。
- 获取编号方法
__input_id()
, 输入编号并返回(字符串类型)eg. s01
- 获取姓名方法
__input_name()
, 输入姓名并返回(字符串类型) - 获取年龄方法
__input_age()
, 输入年龄并返回(整型) - 获取性别方法
__input_gender()
, 输入性别并返回(字符串类型)
- 获取编号方法
实现数据持久化存储
相关知识点:
- 实现数据存储方法
save_data()
- 在退出系统时,将数据保存到
data.yaml
文件中 - 数据保存格式自定义
- 在退出系统时,将数据保存到
- 实现数据加载方法
load_data()
- 如果数据文件
data.yaml
存在,则从文件中加载数据 - 如果文件不存在则初始为空
- 如果数据文件