码迷,mamicode.com
首页 > 其他好文 > 详细

类的继承派生

时间:2020-04-10 00:17:36      阅读:67      评论:0      收藏:0      [点我收藏+]

标签:top   padding   orm   break   sub   graph   expand   之间   inline   

一、什么是继承 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()

类的继承派生

标签:top   padding   orm   break   sub   graph   expand   之间   inline   

原文地址:https://www.cnblogs.com/bailongcaptain/p/12670524.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!