初始代码

class Father:def run(self):print('father de run')def one(self):print('father de one')class Mother:def one(self):print('mother de one')class Teacher:passclass Son(Father,Mother,Teacher):passs = Son()
s.run()

运行效果

Father类中的super登场

有了前面的基础,这个o是什么基本可以理解了

o代表了Son类的基类的实例对象,不包含Father

super对象的另一种写法

效果是一样的

如果Son的第三个基类也有方法,试着调一下

父类中的o调用teach方法

结果

关注teach方法中的self是谁

给每一个类都添加一个实例属性

然后在teach方法中打印实例属性的值

览定self是谁

代码:

class Father:def __init__(self):self.name = 'father'def run(self):print('father de run')# o = super()o = super(Father, self)o.teach()def one(self):print('father de one')class Mother:def one(self):print('mother de one')class Teacher:def __init__(self):self.name = 'teacher'def teach(self):print('老师的实例方法,teach方法', self.name)class Son(Father,Mother,Teacher):def __init__(self):self.name = 'son's = Son()
s.run()

从结果上来看

Teacher类中的self是son

验证self

class Father:def __init__(self):self.name = 'father'def run(self):print('father de run')# o = super()o = super(Father, self)o.teach()def one(self):print('father de one')class Mother:def one(self):print('mother de one')class Teacher:def __init__(self):self.name = 'teacher'def teach(self):print('老师的实例方法,teach方法', self.name)print('teach self id',id(self), self)class Son(Father,Mother,Teacher):def __init__(self):self.name = 'son's = Son()
print('s obj id', id(s), s)
s.run()

结果

表明一个原理

通过子类的继承,调用的父类方法中,如果有super()的实例对象,这个实例对象,就是一个抽象的子类实例对象的父类。

即 本例中的 o 是 s的父类对象

o所调用的方法中的self就是s对象

python-面向对向-实例方法的继承-多继承父类中的super与子类实例对象的关系相关推荐

  1. python类继承返回值_python继承threading.Thread实现有返回值的子类实例

    继承与threading.thread实现有返回值的子类mythread,废话不多说,大家直接看代码 import threading class mythread(threading.thread) ...

  2. 【面向对象编程】(4) 类的继承,重构父类中的方法

    各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...

  3. 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )

    文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...

  4. python-面向对向-静态方法的继承-父类中的super方法

    一,普通继承 重写静态方法 更正,第十行是类方法 扩展父类的静态方法 换一种调用形态 多继承的情况 新增一个Mother类 执行顺序 使用基类的方法时,关注顺序 换个顺序 小结继承的规则 子类继承了类 ...

  5. Python 进阶_OOP 面向对象编程_组合与继承

    #目录 前言 组合 派生 通过继承来覆盖重载方法 最常用的重载场景实例方法的重载 从标准类中派生类方法的重载 前言 我们定义一个类是希望能够把类当成模块来使用,并把类嵌入到我们的应用代码中,与其他的数 ...

  6. Python OOP:面向对象三大特性(封装、继承、多态)、类属性和实例属性、类方法@classmethod、静态方法@staticmethod、函数和类callable、__call__

    一.面向对象三大特性 二.多态 定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果. 一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象 ...

  7. 编写python程序、创建名为class的数据库_Python中的元类(metaclass)以及元类实现单例模式...

    一.理解类也是对象 在理解元类之前,你需要先掌握Python中的类.Python中类的概念借鉴于Smalltalk,这显得有些奇特.在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.在P ...

  8. 初学JavaScript:原型继承/盗用构造函数继承/组合继承/寄生式继承/原型式继承/寄生组合式继承

    文章目录 继承 简介 1.原型链继承 默认原型 判断原型与实例间是否为继承关系 原型继承中的方法 原型链的破坏 原型继承的问题 2.盗用构造函数继承 简介 盗用构造函数继承的问题 3.组合继承 简介 ...

  9. java如何调用父类的实例对象_java子类调用父类的方法中包含子类重写的实例方法...

    java子类调用父类的方法中包含子类重写的实例方法 # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了 # 先看代码: public class Common { public static ...

最新文章

  1. oracle数据库访问order by不起作用分析
  2. 转账示例(二):service层面实现(本例采用QueryRunner来执行sql语句,数据源为C3P0)...
  3. java 泛型 extends 多个
  4. 14.5.5 Creating a File-Per-Table Tablespace Outside the Data Directory
  5. 解决用Python对Sqlite进行数据更新比较慢的一种方法
  6. Nodejs API
  7. 2022-2028年中国智能机床行业市场专项调研及投资前景规划报告
  8. android按钮图标大小设置,调整浮动操作button(fab)的图标大小
  9. linux开机启动rsync,rsync 开机自动启动
  10. matlab 最优资产组合,基于MATLAB的最优投资组合问题.pdf
  11. 服务器安全-Dos-Deflate
  12. codeforces 1677A. Tokitsukaze and Strange Inequality
  13. Java常见面试题_理论+实践
  14. [RFID]IC卡克隆(四)Proxmark3全卡克隆已解密的IC卡
  15. 降维 (Dimensionality Reduction)
  16. 飞凌嵌入式丨千兆网之RGMII SGMII解析
  17. html文件无法找到,html文件无法打开
  18. 创业公司融资,股权是如何一步步被稀释的?
  19. 山东大学单片机原理与应用实验 C语言程序实验
  20. ANSYS 2020R2 FLUENT汉化的方法

热门文章

  1. php解析目录函数怎么用,PHP中目录解析函数
  2. python发送邮件并返回提示_python-邮件提醒功能
  3. PHP商城源码|好看的团购拼购商城源码
  4. 米酷影视直播二开全修复版增加在线充值影视资源网站源码
  5. rtklib 天线相位中心_发射天线的作用
  6. java中一个数小于零_这段java程序怎样才能让“所输入的数小于0!”只输出一次,并且满足题目条件?...
  7. 高并发用redis还是mysql_高并发架构系列:Redis缓存和MySQL数据一致性方案详解
  8. php+api抖音随机播放视频源码
  9. 星益云聚合收银台系统源码
  10. 3D远方纯动态白云页面源码