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称为基类.父类或超类 ...
随机推荐
- 一个随时跟新的css库
1.一个选中阴影的样式 .select border: 1px solid #4d92f7; box-shadow: 0px 0px 15px rgba(0,50,122,.15); 2.一个三栏渐变 ...
- python+requests爬取B站视频保存到本地
import os import datetime from django.test import TestCase # Create your tests here. import requests ...
- Competition Set - 2023杭电多校
关于代码太多导致太卡然后发现刚好可以放下HDU多校这回事. 那就稍微加点经历吧.team316. 第十场 今天发挥还行. 上来开03,一发过.然后做09,感觉就不难,过之.发现11是数学题,干,想了2 ...
- 一键自动化博客发布工具,用过的人都说好(oschina篇)
oschina和segmentfault一样,界面非常的清爽. 界面上除了必须的标题,内容之外,还有文章专辑和推广专区这几个选项. 一起来看看在blog-auto-publishing-tools中, ...
- 01.windows 环境设置
windows下可以安装Git工具, 使用git bash操作 Windows 10 环境下,通过-/.bash_profile 设置 git bash 别名: 打开 git bash,需切换到当前用 ...
- 使用 Docker 部署 WebTop 运行 Linux 系统
1)项目介绍 GitHub:https://github.com/linuxserver/docker-webtop WebTop 它是一个基于 Linux ( Ubuntu 和 Alpine 两种版 ...
- 30分钟带你搞定Dokcer部署Kafka集群
docker网络规划 docker network create kafka-net --subnet 172.20.0.0/16 docker network ls zookeeper1(172.2 ...
- mybatis-plus id在高并发下出现重复
mybaits-plus ASSIGN_ID生成 id生成策略 在分布式高并发环境下出现重复id https://github.com/baomidou/mybatis-plus/issues/307 ...
- C# java 的 equals 与 == 的区别
C# String a = "宜春"; String b = new String(new char[] { '宜', '春' }); String c = b; //注意这里是引 ...
- django验证码插件 --- django-simple-captcha
使用django-simple-captcha实现登录验证码: 第一步:安装pillow依赖 pip install pillow -i https://pypi.tuna.tsinghua.edu ...