python-面向对向-实例方法的继承-多继承父类中的super与子类实例对象的关系
初始代码
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与子类实例对象的关系相关推荐
- python类继承返回值_python继承threading.Thread实现有返回值的子类实例
继承与threading.thread实现有返回值的子类mythread,废话不多说,大家直接看代码 import threading class mythread(threading.thread) ...
- 【面向对象编程】(4) 类的继承,重构父类中的方法
各位同学好,今天和大家分享一下面向对象编程中,类的三大特征之继承.主要介绍:子类继承父类的基本方法:重写父类的类方法:重构父类的初始化方法:super() 方法.本节主要是单继承,多继承在下一节中介绍 ...
- 【Android 逆向】使用 Python 代码解析 ELF 文件 ( PyCharm 中进行断点调试 | ELFFile 实例对象分析 )
文章目录 一.PyCharm 中进行断点调试 二.ELFFile 实例对象分析 一.PyCharm 中进行断点调试 在上一篇博客 [Android 逆向]使用 Python 代码解析 ELF 文件 ( ...
- python-面向对向-静态方法的继承-父类中的super方法
一,普通继承 重写静态方法 更正,第十行是类方法 扩展父类的静态方法 换一种调用形态 多继承的情况 新增一个Mother类 执行顺序 使用基类的方法时,关注顺序 换个顺序 小结继承的规则 子类继承了类 ...
- Python 进阶_OOP 面向对象编程_组合与继承
#目录 前言 组合 派生 通过继承来覆盖重载方法 最常用的重载场景实例方法的重载 从标准类中派生类方法的重载 前言 我们定义一个类是希望能够把类当成模块来使用,并把类嵌入到我们的应用代码中,与其他的数 ...
- Python OOP:面向对象三大特性(封装、继承、多态)、类属性和实例属性、类方法@classmethod、静态方法@staticmethod、函数和类callable、__call__
一.面向对象三大特性 二.多态 定义:多态是⼀种使⽤对象的⽅式,⼦类重写⽗类⽅法,调⽤不同⼦类对象的相同⽗类⽅法,可以产⽣不同的执⾏结果. 一个父类,可以继承给多个子类,每个不同的子类可以创建多个对象 ...
- 编写python程序、创建名为class的数据库_Python中的元类(metaclass)以及元类实现单例模式...
一.理解类也是对象 在理解元类之前,你需要先掌握Python中的类.Python中类的概念借鉴于Smalltalk,这显得有些奇特.在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段.在P ...
- 初学JavaScript:原型继承/盗用构造函数继承/组合继承/寄生式继承/原型式继承/寄生组合式继承
文章目录 继承 简介 1.原型链继承 默认原型 判断原型与实例间是否为继承关系 原型继承中的方法 原型链的破坏 原型继承的问题 2.盗用构造函数继承 简介 盗用构造函数继承的问题 3.组合继承 简介 ...
- java如何调用父类的实例对象_java子类调用父类的方法中包含子类重写的实例方法...
java子类调用父类的方法中包含子类重写的实例方法 # 看题目是不是很绕,这个我也不知道怎么才能更简单的表达了 # 先看代码: public class Common { public static ...
最新文章
- oracle数据库访问order by不起作用分析
- 转账示例(二):service层面实现(本例采用QueryRunner来执行sql语句,数据源为C3P0)...
- java 泛型 extends 多个
- 14.5.5 Creating a File-Per-Table Tablespace Outside the Data Directory
- 解决用Python对Sqlite进行数据更新比较慢的一种方法
- Nodejs API
- 2022-2028年中国智能机床行业市场专项调研及投资前景规划报告
- android按钮图标大小设置,调整浮动操作button(fab)的图标大小
- linux开机启动rsync,rsync 开机自动启动
- matlab 最优资产组合,基于MATLAB的最优投资组合问题.pdf
- 服务器安全-Dos-Deflate
- codeforces 1677A. Tokitsukaze and Strange Inequality
- Java常见面试题_理论+实践
- [RFID]IC卡克隆(四)Proxmark3全卡克隆已解密的IC卡
- 降维 (Dimensionality Reduction)
- 飞凌嵌入式丨千兆网之RGMII SGMII解析
- html文件无法找到,html文件无法打开
- 创业公司融资,股权是如何一步步被稀释的?
- 山东大学单片机原理与应用实验 C语言程序实验
- ANSYS 2020R2 FLUENT汉化的方法
热门文章
- php解析目录函数怎么用,PHP中目录解析函数
- python发送邮件并返回提示_python-邮件提醒功能
- PHP商城源码|好看的团购拼购商城源码
- 米酷影视直播二开全修复版增加在线充值影视资源网站源码
- rtklib 天线相位中心_发射天线的作用
- java中一个数小于零_这段java程序怎样才能让“所输入的数小于0!”只输出一次,并且满足题目条件?...
- 高并发用redis还是mysql_高并发架构系列:Redis缓存和MySQL数据一致性方案详解
- php+api抖音随机播放视频源码
- 星益云聚合收银台系统源码
- 3D远方纯动态白云页面源码