首页
学习
活动
专区
圈层
工具
发布

Python 在子类中调用父类方法详解(单继承、多层继承、多重继承)

测试环境: win7 64位 Python版本:Python 3.3.5 代码实践: 1、在子类中通过“类名”调用父类的方法 class FatherA: def __init__(self)...__init__(self) # 在子类中调用父类的方法:父类名.方法名称(参数) if __name__ == '__main__': b = SubClassB() 运行结果: >>> ==...(如类SubClassB的父类由FatherA变为FatherD时),必须遍历整个类定义,把子类中所有的父类类名全部替换过来 2、在子类中通过“super”方法调用父类的方法 场景1、单层继承 class...-type的父类(如果有的话),即type决定了前往哪个父类调用指定的方法 场景3、多重继承 实验1: class FatherA: def __init__(self): print('init...,以super().method(参数)方法调用父类的方法,如果不同父类中存在同名方法method(不管参数列表是否相同),则按继承顺序,选择第一个父类中的方法。

3.8K30

Python类的继承

类的继承可以看成对类的属性和方法的重用,能够大大的减少代码量,继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,也就是说在python中支持一个儿子继承多个爹。...通过继承创建的新类为子类或者派生类,被继承的类称为基类、父类或超类 1、子类会继承父类所有的功能属性和方法,并且子类能够拥有自己的属性和方法;对原来的父类不会产生任何影响。...单继承中只有一个父类,而多继承中有多个父类 2、调用属性和方法时,优先调用子类的,子类没有再调用父类的,当子类的属性和方法与父类的属性和方法名称重复时,以子类的属性和方法为准。...('%s 在吃饭(Person类eat方法)'%self.name) def sleep(self): print('%s 在睡觉(Person类sleep方法)'%self.name...print('这个是C类构造函数') pass class D(B,C): pass test=D() "C:\Program Files\Python35\python.exe" C

1.4K10
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 类与继承

    ,Python 解释器会首先调用 __new__ 方法为对象分配空间,并返回对象的引用,Python 解释器在获得对象的引用后,将引用作为第一个参数,传递给 __init__ __new__ 通常用于控制生成一个类实例的过程...直接继承Parent,二者之间叫做子类和父类 Parent直接继承Grandparent,二者之间叫做子类和父类 Son间接继承Grandparent,Grandparent是Son的超类 class.../2013/07/25/python-mro/ 简单来讲就是菱形继承机制,左侧优先,重复类保留最后一个 该方法用于查看类的调用顺序(继承关系) class A: pass class B(A)...,返回一个由所有子类构成的列表 这个方法只适用于新式类,新式类继承自 object,Python3版本中只支持新式类,Python2版本中可能不支持 class A: pass class B...python 中有许多不需要引用就能直接使用的函数,例如 open 、str、chr 等等,这些函数都包含在内建模块中,在 python2/3 中对于内建模块,有不同的表示方法 python2 在 python2

    93040

    python类的继承

    面向对象的三大特性:封装、继承、多态 继承时面向对象编程的优点之一 类的继承与方法重载: 继承的特点: 减少代码和灵活定制新类 子类具有父类的属性和方法 子类不能继承父类的私有属性/方法 子类可以添加新的方法...子类可以修改父类的方法 继承的语法: 定义类时,在类名后:(继承的类名) 多重继承时,括号中放多个父类名,逗号分开 例子:class MyClass(BaseClass) python中没有继承的类,...默认继承Object 类名.base 类名.bases 查看父类 代码: # -*- coding=utf-8 -*- class A: pass print(A....__bases__) super() 父类 super.方法名() 调用父类方法 子类调用方法时,会先在子类找,子类不存在时,会向父类找 # -*- coding=utf-8 -*- class Washer...self.add_scour() # self.add_water() # print("Start wash...") # pass # pass #调用父类方法

    1K20

    【C++】继承 ① ( 面向对象特点 | 类之间的关系 | 单继承与多继承 | 继承关系特性 )

    属性 和 方法 ; 多态 : 相同的操作作用于不同的对象 , 产生不同的结果 ; 2、类之间的关系 类之间的关系可以分为 三 大类 : HAS-A 类关系 : 类由多个部件组成 , 类中的数据也是其它的类...; 聚合关系 Aggregation : 整体与部分之间的关系 , 部分可以脱离整体存在 ; 组合关系 Composition : 整体与部分之间的关系 , 二者不可分 , 强于聚合关系 ; USE-A...类关系 : 类对象之间存在关系 ; 关联关系 Association : 一个类中定义了其它类的对象作为 成员变量 ; 依赖关系 Dependency : 一个类的成员方法中使用了其它类的对象...作为参数 ; IS-A 类关系 : 类的继承 , 接口实现 ; 泛化关系 Generalization : 一般描述 和 具体描述 之间的关系 , 继承中的 父类 和 子类 就是这种关系 ;...1、名词说明 继承 是两个类之间的关系 ; 在C++中,使用 : 运算符来实现继承 ; A 类 是 父类 , B 类 是 子类 ; B 类 继承 A 类 , A 类 派生 B 类 ; 父类 又称为 基类

    41530

    Python教程:类的继承,什么是继承

    一、什么是继承 继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类 继承的特性是:子类会遗传父类的属性 继承是类与类之间的关系 二、为什么用继承 使用继承可以减少代码的冗余 三、对象的继承 Python...__bases__) (, ) 在Python3中如果一个类没有继承任何类,则默认继承object...类 在Python2中如果一个类没有继承任何类,不会继承object类 print(Parent1....__bases__) (,) 四、类的分类 后面会详细解释类的分类,目前仅做了解 1 新式类 继承了object的类以及该类的子类,都是新式类 Python3中所有的类都是新式类...2 经典类 没有继承object的类以及该类的子类,都是经典类 只有Python2中才有经典类 五、继承与抽象 继承描述的是子类与父类之间的关系,是一种什么是什么的关系。

    1K20

    Python的类的继承

    继承是指这样一种能力:它可以使用现有类的所有功能,并在无需重新编写原来类的情况下对这些类进行扩展。 ? 根据继承的定义,可以知道它的作用是:避免重复的方法和重复的变量。...现在一个新的模块里定义一个父类class Human(),在类下面创建一些方法,然后在另一个新的模块继承这个类,代码如下: class Human(): sum = 0 def __init...Student('光明小学','石敢当',18) student1.do_homework() >>>This is a parent method english homework 在上面例子中,我们不仅可以在子类的构造函数中继承父类的变量...,我们也可以在子类的方法中继承父类的方法,我们在父类中创建一个和子类同名的方法,然后在子类中继承这个同名的父类方法,结果会怎么样呢?...通过这个例子,我们可以知道,当子类和父类同名时,Python会优先调用父类的方法。

    90520

    Python 基础 类的继承

    如果寂静定义了Person类,需要定义新的Student 和Teacher 类时     可以直接从Person 中继承     class Person(Object):       def __init...这说明在一条继承链上,一个实例可以看成它本身的类型,       也可以看成它父类的类型。...python 中多态     类具有继承关系,并且子类类型可以向上转型看做符类型,如果我们从Person     派生出 Student 和Teacher, 并都写了一个who Aml() 方法       ...        义,则顺着继承链向上查找,直到在某个父类中找到为止。...python 中多重继承       除了从一个父类继承外,Python允许从多个父类继承,称为多重继承。

    1.3K60

    Python中类的继承、多层继承和多继承

    Python中,一个类可以通过继承的方式来获得父类中的非私有属性和非私有方法。...一、继承、重写、和调用重写的父类方法 继承的语法为在类名后的小括号()中写入要继承的父类名,如果要继承多个类则中间用逗号分隔。...当子类实现一个和父类同名的方法时,叫做重写父类方法。直接在子类中定义与父类同名的方法,然后在方法中实现子类的业务逻辑,子类方法就会覆盖父类的同名方法。...4.如果在子类重写父类的方法中,需要使用父类同名方法中的功能,在父类功能基础上做扩展,则子类可以在重写的方法中调用父类被重写的方法,使用super()来调用。 ? 二、类的多层继承 类可以多层继承。...当Mi类对象调用属性和方法时,优先在自己的内部查找是否有该属性和方法,如果没有会到它的父类Phone中查找该属性和方法,如果没有会继续往上在Phone的父类Electrical中查找,一直查找到object

    6K30

    Python_类的继承

    1.类的继承关系和生活中父亲、儿子、孙子之间的关系一样,Python中若A类继承B类,则A类称之为子类,B类称之为父类(也称为基类)。...总结:1.子类继承父类时,在子类进行属性调用的顺序为:先查找自己的属性字典,若自己的属性字典中无该属性,则会依次按照继承父类的顺序来依次查找父类的属性字典;2.子类继承父类,当父类和子类均有相同的属性时...多层继承在python2和python3中解析的顺序不同,python2中是深度优先的原则,python3中是以广度优先的原则。继承顺序见下图: ? ?...继承原理:python到底是如何实现继承顺序的呢?对于你定义的每一个类,python会计算出一个方法解析顺序(MRO)列表,这个MRO列表就是一个简单的所有基类的线性顺序列表。...为了实现继承,python会在MRO列表上从左到右查找基类,直到找到第一个匹配这个属性的类为止。而这个MRO列表的构造是通过一个C3线性化算法来实现的。

    1.1K10

    Python类的继承实例

    类的继承可以看成对类的属性和方法的重用,能够大大的减少代码量,继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,也就是说在python中支持一个儿子继承多个爹。...通过继承创建的新类为子类或者派生类。 被继承的类称为基类、父类或超类 1、子类会继承父类所有的功能属性和方法,并且子类能够拥有自己的属性和方法;对原来的父类不会产生任何影响。...单继承中只有一个父类,而多继承中有多个父类 2、调用属性和方法时,优先调用子类的,子类没有再去父类调用,当子类的属性和方法与父类的属性和方法名称重复时,以子类的属性和方法为准 3、多重继承时,有相同名称的属性和方法时...,会优先继承写在前面的父类的重名属性和方法,前面没有再去找下个父类,父类也没有,找爷爷类 4、多重继承时,若子类有构造函数,调用子类构造函数,若子类没有,会调用写在前面父类的构造函数,再找后面的父类,最后找爷类.../Test/Test/test.py 这里是Person类的构造方法 橙子 在吃饭(Teacher类eat方法) 橙子 在睡觉(Person类sleep方法) 橙子 Person类的age Process

    2.9K10

    python中类的多继承

    ---- 本节知识视频教程 一、多继承 类似于c++中某个类,一次可以继承多个父类,所有被继承的这些父类的方法和属性都将可以被子类使用。...如果某个类的方法与继承的父级中有相同的方法名称,那么我们的结果就是以这个子类的方法名称作为最终的 方法。 二、查看父类和属性继承规则 1.如何查看继承的多个父级类是哪些?...可以通过子类的__bases__ (注意这里有两个下划线) 2.Python中属性的继承规则呢? 通过测试,我们知道属性的继承规则和方法的继承规则是一样的。...三、总结强调 1.掌握多继承类的定义 2.掌握查看多继承类的魔法属性 3.掌握多继承类的调用规则 4.掌握属性的继承规则 相关文章: python应用场景有哪些?岗位工资如何?...开始了解python语言吧! 入手一门编程语言,一起初识Python html中的起到什么作用?前端面试经常考到 python中类和对象 python中函数递归VS循环

    1.7K30
    领券