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

学习日志0820类的继承

时间:2018-08-20 15:35:26      阅读:223      评论:0      收藏:0      [点我收藏+]

标签:object   父类   方式   深度优先   效果   strong   广度   没有   派生   

1 什么是继承

  继承是一种新建类的方式,新建的类称之为子类/派生类,被继承的类称之为父类/基类/超类

  继承的特性:子类可以遗传/重用父类的属性

  python中继承的特点:

  1 python中一个子类可以同时继承多个父类

  2 在继承的背景下去说,python中的类分为两种:

    新式类,经典类:

    新式类:但凡继承了object的类Foo,以及该类的子类都是新式类

      在python3中都是新式类,默认继承object

    经典类:没有继承object的类,以及该类的子类

在子类派生出的新方法中重用父类的功能的方式一:

指明道姓的引用一个类中的函数:

  

class a:
    def __init__(self,name,age,sex):
        self.name = name
        self.age = age
        self.sex = sex

class b(a):
    def __init__(self,name,age,sex,b)
        a.__init__(self,name,sex)
        self.b= b

  总结:

    1 与继承无关

    2 访问没有自动传值的效果

 

  在多继承背景下属性的查找的优先级:

    如果一个子类继承多个分支:就一个分支一个分支的查找,一个分支完全找完再找另一个分支

  在菱形继承中:

    新式类:广度优先查找先(一个分支一个分支的查找,所有的分支都查找完了之后再找顶级的)

    经典类:深度优先查找(一个分支一个分支的找,第一个分支直接到顶级)

  在子类中重用父类的方式二:

    super()

class a:
    def __init__(self,name,age,sex):
        self.name= name
        self.age = age
        self.sex = sex

class b(a):
    def __init__(self,name,age,sex,b):
        supper().__init__(name,age,sex)
        self.b = b

 

学习日志0820类的继承

标签:object   父类   方式   深度优先   效果   strong   广度   没有   派生   

原文地址:https://www.cnblogs.com/jianhaozhou/p/9505470.html

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