• 类继承、组合


    一、任务描述

      本实验任务主要对类继承进行一些基本操作,通过完成本实验任务,要求学生能熟练掌握类的继承与组合,并对类继承的基本操作进行整理并填写工作任务报告。

    二、任务目标

    1、掌握Python的类继承

    三、任务环境

    Ubuntu16.04、Python2.7

    四、任务分析

      在python3中所有类默认继承object,凡是继承了object的类都成为新式类,以及该子类的子类,Python3中所有的类都是新式类,没有集成object类的子类成为经典类(在Python2中没有集成object的类以及它的子类都是经典类)。

     ♥ 温馨提示
    继承:即一个派生类(derived class)继承基类(base class)的字段和方法

    五、任务实施

    步骤1、环境准备

      右击Ubuntu操作系统桌面,从弹出菜单中选择【Open in Terminal】命令 打开终端。

      通过【cd /home】切换到home目录下。【ls】查看该目录下的所有内容。

    图1 切换目录

      【mkdir extends】在home目录下创建extends文件夹。

    图2 创建文件夹

    步骤2、继承

      【cd extends】切换到extends目录下,【vim class1.py】回车后创建并编辑名为class1的Python文件

    图3 创建Python文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,如下程序只作参考,不需要编写。

      可以看到teacher和student类中,有很多重复的代码。

      它们都有人类所共有的name,age,sex等特征,以及有人类有的walk这个技能,

      那么就可以把人类共有的name,age,sex特征和walk技能抽离出来,生成一个人的类,

      然后用老师和学生的类来继承人的类的这些特征和技能,这样可以避免写重复的代码。

    图4 编辑Python文件

      编译如下程序。

      把老师和学生中所重复的代码抽离出来,生成人类。

    图5 编辑Python文件

      定义一个老师类,来继承人的类的一个特征和技能。

      定义Teacher类时,只需要把额外的属性加上。如course.
    一定要用 super(Teacher, self).__init__(name, age,sex)去初始化父类,否则,继承自 Person 的 Teacher 将没有 name、age和sex。

      函数super(Teacher, self)将返回当前类继承的父类,即 Person ,然后调用__init__()方法,注意self参数已在super()中传入,在__init__()中将隐式传递,不需要写出(也不能写)。

    图6 编辑Python文件

      定义一个学生类,来继承人的类的一些特征和技能:

    图7 编辑Python文件

      类定义好了,通过类实例化生成一个学生和一个老师

    图7 编辑python文件

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python class1.py】执行class1的Python文件。

      得到子类继承父类的属性及方法,None值的产生是tell函数执行的结果, 因为它没有return所以返回值是None。

    图8 运行Python文件

    步骤3、组合

      【vim class2.py】回车后创建并编辑名为class2的Python文件。

    图9 创建Python文件

      回车后进入编辑框内,按键盘【i】进入编辑状态,编辑如下程序。

      一个类被定义后,目标就是把它当成一个模块来使用,并把这些对象嵌入到你的代码中去,同其他数据类型及逻辑执行流混合使用。

      组合,就是让不同的类混合并加入到其他类中,来增强功能和代码重用性。
    定义日期的类。

    图10 编辑Python文件

      定义学生类,实现学生的基本信息,通过【self.birth = Date(year,month,day)】来组合日期类信息。

    图11 定义学生类

      实例化学生类,通过birth.tell_birth()调用日期的方法。

    图12 实例化学生类

      编辑完毕后,按【esc】退出编辑状态,【:wq】保存并退出编辑框,【python class2.py】执行class2的Python文件。

    图13 运行Python文件
  • 相关阅读:
    软件设计和开发是手艺活也是艺术活
    学界老师和业界专业人员的紧密合作才能促进软件设计开发教学的进步
    最简单的 GitExtensions 教程(持续更新中)
    最简单的 IntelliJ IDEA 中使用 GitHub 进行版本控制教程(持续更新中)
    工作室成员 GitHub 地址集中贴(按发布时间先后排序)
    使用 Visual Studio Code 运行 C# 及 Java 程序
    推荐一个非常好的 IntelliJ IDEA 教程
    Commit message 和 Change log 编写指南(转自阮一峰的博客)
    关于编码规范的延伸资料(来自于福州大学陈世发同学的博客)
    【扩展阅读】提问的智慧(转自福州大学陈世发同学的评论)
  • 原文地址:https://www.cnblogs.com/yu-1104/p/9050503.html
Copyright © 2020-2023  润新知