Skip to content

【周末】Python面向对象编程

Python 面向对象编程实战

直播前准备

点击查看直播前准备

课程目标

  • 掌握 Pythonn 面向对象编程。
  • 掌握 Pytest 测试框架的基本使用
  • 掌握 Python 文件读写。

实战练习

需求说明

实战思路

uml diagram

根据需求,明确相关对象

相关知识点:

  1. 定义学生类 Student,学生信息包含。:
    • 编号: sid
    • 姓名: name
    • 年龄: age
    • 性别: gender
  2. 定义管理类 StudentManagement,定义对学生数据的增删改查功能函数,并编写断言,函数功能实现先设置为空。
实现功能函数

相关知识点:

  1. 根据需求与设计,定义好每个功能函数的测试用例。
  2. 实现添加学生方法(add)
    • 方法参数为 Student 对象。
    • 返回是否添加成功的结果。
    • 要求编号不可重复。
  3. 实现通过学号查询学生方法(get)
    • 参数为学号
    • 如果学生存在,则输出学生信息,不存在输出提示
    • 返回是否查询成功
  4. 实现通过姓名查询学生方法(get_by_name)
    • 参数为姓名
  5. 实现通过编号修改学生信息方法(update)
    • 参数为学号
    • 如果学生存在,则进行修改,不存在输出提示
    • 返回是否修改成功
  6. 实现通过学号删除学生方法(delete)
    • 参数为学号
    • 如果学生存在,则进行删除,不存在输出提示,并返回是否删除成功
    • 如果学生存在,则输出学生信息(同名学生全部输出),不存在输出提示
    • 返回是否删除成功
  7. 实现显示所有学生信息方法(list)
    • 输出所有学生信息
实现入口函数与输入操作

相关知识点:

  1. 实现控制方法做为程序执行入口 (process_management)
    • 控制菜单的输出与功能的选择
    • 对用户输入内容进行输入校验
    • 根据用户输入内容选择不同功能执行
  2. 因程序中需要多次对编号及姓名进行输入,故抽取方法获取对应的数据。
    • 获取编号方法__input_id(), 输入编号并返回(字符串类型)eg. s01
    • 获取姓名方法__input_name(), 输入姓名并返回(字符串类型)
    • 获取年龄方法__input_age(), 输入年龄并返回(整型)
    • 获取性别方法__input_gender(), 输入性别并返回(字符串类型)
实现数据持久化存储

相关知识点:

  1. 实现数据存储方法save_data()
    • 在退出系统时,将数据保存到 data.yaml 文件中
    • 数据保存格式自定义
  2. 实现数据加载方法load_data()
    • 如果数据文件 data.yaml 存在,则从文件中加载数据
    • 如果文件不存在则初始为空