• 类的继承派生


    一、什么是继承 I:继承是一种创建新类的方式,新建的类可称为子类或派生类,父类又可称为基类或超类,子类会遗传父类的属性 II:需要注意的是:python支持多继承 在Python中,新建的类可以继承一个或多个父类

    class Parent1(object): # 父类
      x=1111

    class Parent2(object):# 父类
      pass

    class Sub1(Parent1): # 单继承
      pass

    class Sub2(Parent1,Parent2): # 多继承
       pass

    ps1: 在python2中有经典类与新式类之分 新式类:继承了object类的子类,以及该子类的子类子子类。。。 经典:没有继承object类的子类,以及该子类的子类子子类。。。

    在python3中没有继承任何类,那么会默认继承object类,所以python3中所有的类都是新式类

    III:python的多继承 优点:子类可以同时遗传多个父类的属性,最大限度地重用代码 缺点: 1、违背人的思维习惯:继承表达的是一种什么"是"什么的关系 2、代码可读性会变差 3、不建议使用多继承,有可能会引发可恶的菱形问题,扩展性变差, 如果真的涉及到一个子类不可避免地要重用多个父类的属性,应该使用Mixins

    二、为何要用继承:用来解决类与类之间代码冗余问题

    三、如何实现继承

    class OldBoyPeople:
        school = '上海校区'

        def __init__(self, name, age, gender):
            self.name = name
            self.age = age
            self.gender = gender


    class student(OldBoyPeople):
        def tell_info(self):
            print(f'学生姓名:{self.name}正在上课。')


    class teacher(OldBoyPeople):
        def __init__(self, name, age, gender, salary, level):
            OldBoyPeople.__init__(self, name, age, gender)
            self.salary = salary
            self.level = level

        def tell_info(self):
            print(f'老师:{self.name}的薪水是{self.salary}')
    # 调用
    teacher_obj = teacher('egon', '44', 'male', '10000', 5)
    teacher_obj.tell_info()

  • 相关阅读:
    Android(java)学习笔记68:使用proguard混淆android代码
    SGU 194 Reactor Cooling
    关于流量有上下界的网络流问题的求解
    关于最小割的求解方法
    HDU 5311 Hidden String
    POJ 3548 Restoring the digits
    POJ 2062 HDU 1528 ZOJ 2223 Card Game Cheater
    ZOJ 1967 POJ 2570 Fiber Network
    HDU 1969 Pie
    HDU 1956 POJ 1637 Sightseeing tour
  • 原文地址:https://www.cnblogs.com/bailongcaptain/p/12670524.html
Copyright © 2020-2023  润新知