Python_12 多继承与多态
一、查缺补漏
1. self和super的区别:self调用自己方法,super调用父类方法
当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找
而当使用 super 时,则从父类的方法列表中开始找,然后调用父类的这个方法。
2. Alt+回车 下载包
3. 国内源地址,和镜像有关
清华:https://pypi.tuna.tsinghua.edu.cn/simple
豆瓣:https://pypi.doubanio.com/simple/
网易:https://mirrors.163.com/pypi/simple/
阿里云:https://mirrors.aliyun.com/pypi/simple/
腾讯云:https://mirrors.cloud.tencent.com/pypi/simple
二、多继承
概念:一个类继承多个类,该类就拥有了多个类的方法和属性(私有的方法和属性除外)
语法:class 子类(父类1,父类2):
子类调用父类的方法和属性:super()方法使用和普通方法使用都遵循子类 --- 父类1 --- 父类2的查找顺序
Super()没有办法更改类继承的查找顺序,还是按照上面查找顺序查找
MRO表:表示类与类之间继承关系的图标,如果继承关系混乱有可能会报错

4. 多继承原则:不要让父类一下子是子类一下是父类,不要相互继承
三、多态:多态是指一类事务有多种形态,跟据使用情况,传入不同的参数,实现不同的功能,用在接口上的多
一些事务等同于同名的方法,相同特性的名称在不同类中展示,再根据调用不同的类结果也各不相同

四、动态设置属性(动态设置属性,增、删、改、查、判断)
_ dict _获取对象的所有属性,在类中是指实例属性,使用时展示出来的结果形似字典
setattr(参数1,参数2,参数3) 增加/修改属性
这里需要注意参数一也就是对象如果是对实例化对象做增加修改,
则是添加实例属性,如果对类本身增加修改,则是添加类属性
参数1:对象
参数2:属性的key
参数3:属性的value
属性存在就相当于修改
属性不存在就相当于添加属性

2. 接收值 = getattr(参数1,参数2,参数3) 获取/查询属性
参数1:对象
参数2:属性的key
参数3:非必传,value的默认值

当属性不存在的时候,会直接返回默认的value值,如果属性不存在,也没有设置value,会报错
当属性存在就返回属性对应的value
查询时可以查询类的其他属性,包括非实例属性(类属性)

3. delattr(参数1,参数2) 删除属性 只能删除类中的实例属性
参数1:对象
参数2:属性的key

4. hasattr(参数1,参数2) 判断属性是否存在
参数1:对象
参数2:属性的key
判断时可以判断类的其他属性,包括非实例属性(类属性),返回布尔值
在参数1中放类名称可以查看类属性,在参数1中放类的实例化对象可以即查看类属性又查看实例属性

Python_12 多继承与多态的更多相关文章
- Objective-C中的继承和多态
面向对象编程之所以成为主流的编程思想和他的继承和多态是分不开的,只要是面向对象语言都支持继承和多态,当然不同的OOP语言之间都有其特点.OC中和Java类似,不支持多重继承,但OOP语言C++就支持多 ...
- java中抽象、分装、继承和多态的理解
1.抽象.封装装.继承和多态是java面向对象编程的几大特点. 抽象:所谓抽象就是对某件事务,我们忽略我们不关心不需要的部分,提取我们想要的属性和行为,并且以代码的形式提现出来:例如我们需要对一个学生 ...
- [转] JS中简单的继承与多态
这里讲了一个最最最简单的JS中基于原型链的继承和多态. 先看一下以下这段代码的实现(A是“父类”,B是“子类”): var A = function(){ this.value = 'a'; this ...
- 网络电视精灵~分析~~~~~~简单工厂模式,继承和多态,解析XML文档,视频项目
小总结: 所用技术: 01.C/S架构,数据存储在XML文件中 02.简单工厂模式 03.继承和多态 04.解析XML文档技术 05.深入剖析内存中数据的走向 06.TreeView控件的使用 核心: ...
- OC的封装、继承与多态
面向对象有三大特征:封装.继承和多态. 一.封装 封装是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问.简而言之,信息隐藏,隐 ...
- 2、C#面向对象:封装、继承、多态、String、集合、文件(上)
面向对象封装 一.面向对象概念 面向过程:面向的是完成一件事情的过程,强调的是完成这件事情的动作. 面向对象:找个对象帮你完成这件事情. 二.面向对象封装 把方法进行封装,隐藏实现细节,外部直接调用. ...
- Java学习笔记 07 接口、继承与多态
一.类的继承 继承的好处 >>使整个程序架构具有一定的弹性,在程序中复用一些已经定义完善的类不仅可以减少软件开发周期,也可以提高软件的可维护性和可扩展性 继承的基本思想 >>基 ...
- JavaScript 面向对象程序设计(下)——继承与多态 【转】
JavaScript 面向对象程序设计(下)--继承与多态 前面我们讨论了如何在 JavaScript 语言中实现对私有实例成员.公有实例成员.私有静态成员.公有静态成员和静态类的封装.这次我们来讨论 ...
- Java继承和多态实例
我们知道面向对象的三大特性是封装.继承和多态.然而我们有时候总是搞不清楚这些概念.下面对这些概念进行整理, 为以后面向抽象的编程打下坚实的基础. 封装的概念还是很容易理解的.如果你会定义类,那么相信你 ...
- python基础——继承和多态
python基础——继承和多态 在OOP程序设计中,当我们定义一个class的时候,可以从某个现有的class继承,新的class称为子类(Subclass),而被继承的class称为基类.父类或超类 ...
随机推荐
- 2021“MINIEYE杯”中国大学生算法设计超级联赛(1)
2021"MINIEYE杯"中国大学生算法设计超级联赛(1) 1001 Mod, Or and Everything 题意: 对于每次输入的数字n,求(n%1)|...(n%n)的 ...
- Maven - cmd命令行窗口创建maven项目
一.构建命令 mvn archetype:generate 当出现以上的命令提示,直接回车下一步即可: 二.输入maven项目的groupId.artifactId.version 三.maven项目 ...
- virtualbox Ubuntn配置多站点
1.编辑站点文件: nano /etc/nginx/sites-available/default cd /etc/nginx/sites-available/ ls2. 把default的设置文件 ...
- Lua热更学习--使用toLua中的协程
[6] C#访问调table类中的成员变量和函数 访问table中的变量和函数 lua中可以使用table作为class,因此对table中的函数访问调用是必要的根据前面对table访问和functi ...
- URP(Universal Render Pipeline)渲染管线在使用中的一些分享
本篇文章整理了URP管线使用中的一些简单的心得记述 1.使用ScriptableRendererFeature自定义渲染特性 在内建(Build-in)管线中可以使用CommandBuffer并添加到 ...
- C数据结构:树和森林存储方式与遍历方式
文章目录 树的存储方式 双亲表示法 孩子链表表示法 孩子兄弟表示法(二叉树表示法) 树和二叉树的转换 森林和二叉树的转换 树和森林的遍历 树的遍历方式 森林的遍历方式 浅谈一下几个问题 为什么树没有中 ...
- C# 使用 运算符重载 隐式转换 对Point进行加减计算
运算符重载方便了我们对自定义类型(自定义的类或者结构体)的计算. 运算符重载关键字 operator. 除了这些运算符不支持:x.y.f(x).new.typeof.default.checked.u ...
- Native如何使用Tunnel Mode
mAudioSessionId = AudioSystem::newAudioUniqueId(AUDIO_UNIQUE_ID_USE_SESSION); mHwSync = AudioSystem: ...
- python脚本将ascii码形式的文件转换为真正的二进制文件
1.通过tcpdump在越狱手机上面抓取所有包,包含环路包 将手机通过USB线连接电脑,并将其映射到本地端口,启动抓包 rvictl -s bb44203ca128c7b13bfc66fa34f6c1 ...
- .NET集成DeveloperSharp实现"高效分页"&"无主键分页"
DeveloperSharp系列近期又被制造业ERP.民航飞行App.建筑BIM.电力掌上营业厅.等多家大型采用,站在巨人的肩膀上你能走的更远. 支持.Net Core2.0及以上,支持.Net Fr ...