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称为基类.父类或超类 ...
随机推荐
- vue使用vant的van-tabs+tag在选项卡展示该内容有几条的提示
1.直接写用v-if判断下标展示,会滚动.pass! 2.定位,各种定位,相对各种父元素各种定位,还是会滚,因为tab内容一定滚动,pass 3.手写选项卡+v-if判断,这肯定可行,但本着能用ui组 ...
- 如何对一个新的 VSCode 配置 LaTeX
texlive 的安装件参考资料 [1]. 往 VSCode 里面装 LaTeX Workshop 插件,也可以直接搜 James-Yu.latex-workshop. Ctrl+Shift+P 打开 ...
- 网站访问速度优化实战:CDN源/Nginx压缩/全站CDN加速
前言 接触到CDN的起因: 我自己搭建的网站https://price.monitor4all.cn/网页打开的速度一直比较慢,经查证是我的网站有很多静态js大文件,通过浏览器读取这些js比较耗时间. ...
- Django高级表单处理与验证实战
title: Django高级表单处理与验证实战 date: 2024/5/6 20:47:15 updated: 2024/5/6 20:47:15 categories: 后端开发 tags: D ...
- webapi中间件没有使用终结点中间件时的注意事项
最小webapi 最小webapi默认的中间件配置是这样的 app.UseHttpsRedirection(); app.UseAuthorization(); app.MapControllers( ...
- CAD 标注镜像
在代码里用镜像矩阵对标注进行镜像的时候,标注上面的文字也会被镜像掉,我在网上得到一个方法,可以解决这个问题.https://forums.autodesk.com/t5/net/dbtext-and- ...
- skipped: maximum number of running instances reached (1)
apscheduler定时任务报错skipped: maximum number of running instances reached (1) 原因是默认max_instances最大定时任务是1 ...
- 【C#】使用ffmpeg image2pipe将图片保存为mp4视频
文章目录需求实现需求在正式开始之前,先介绍下我的需求是怎么样的,基于此需求如何使用ffmpeg实现.仅供参考. 需求点: 将图片保存为视频图片数量不是固定的,是由上游的webrtc传下的帧数据,转成的 ...
- 安装numpy:conda install nampy==1.16 时报错An HTTP error occurred when trying to retrieve this URL.
安装numpy:conda install nampy==1.16 时报错An HTTP error occurred when trying to retrieve this URL. HTTP e ...
- 多项分布模拟及 Seaborn 可视化教程
多项分布 简介 多项分布是二项分布的推广,它描述了在 n 次独立试验中,k 种不同事件分别出现次数的离散概率分布.与二项分布只能有两种结果(例如成功/失败)不同,多项分布可以有 k 种(k ≥ 2)及 ...