day29 Pyhton 面向对象 继承进阶
一.内容回顾
初识继承
父类\基类\超类
子类\派生类
派生 :派生方法.派生属性
单继承
继承的语法class子类名(父类名)
解决开发中代码冗余的问题
子类继承了父类之后,可以调用父类中的方法
如果子类的对象调用某个方法:对象/自己类/父类
如果子类的对象调用的某个方法父子类中都有:
正常情况下是用自己的
想用父类的:
super().方法名()
父类名.方法名(self)
继承表达的是两个类之间 父类子类的关系
二.今日内容
抽象类:规则
约束了所有继承这个抽象类的子类必须实现某些同名方法
# from abc import ABCMeta,abstractmethod
# class Abstract(metaclass=ABCMeta): # metaclass 元类
# @abstractmethod
# def func_name(self):
# print('继承Abstract的子类中必须有一个func_name的方法')
# class Son(Abstract):
# def func_name(self):
# print('继承了Abstract就必须写一个func_name方法')
接口类(对多个抽象类的多继承)
# class Abstract1(metaclass=ABCMeta): # metaclass 元类
# @abstractmethod
# def wahaha(self):
# print('继承Abstract1的子类中必须有一个wahaha的方法')
# class Abstract2(metaclass=ABCMeta): # metaclass 元类
# @abstractmethod
# def qqxing(self):
# print('继承Abstract2的子类中必须有一个qqxing的方法')
# class Son(Abstract1,Abstract2):
# def wahaha(self):
# print('继承Abstract1的子类中必须有一个wahaha的方法')
# def qqxing(self):
# print('继承Abstract2的子类中必须有一个qqxing的方法')
# 归一化设计
# class Student:
# def login(self):pass
# class Teacher:
# def login(self):pass
# def login(obj):
# obj.login()
# a = Student()
# a.login()
# b = Teacher()
# b.login()
# c3算法
# 求某一类在多继承中的继承顺序:
# 类的mro== [类] + [父类的继承顺序] + [父类2的继承顺序]....
# 如果从左到右的第一个类在后面的顺序中都没出现,那么就提出来到mro顺序中
# [ABCD] + [EO] --> A = [BCD] + [EO]
# 如果从左到右的第一个类在后面的顺序中出现,且在后面的顺序中也是第一位,那么就提出来到mro顺序中
# [ABCD] + [AEO] --> A = [BCD] + [EO]
# 如果从左到右的第一个类在后面的顺序中出现,但不是在第一位,那么应该继续往后找,找到符合规则的项目
# [ABCD] + [EAO] --> E = [ABCD] + [AO]
# [ABCD] + [EAO] + [GEO] --> G = [ABCD] + [EAO] + [EO]
# [ABCD] + [EAO] + [EO] --> GE = [ABCD] + [AO] + [O]
# 关键结论:
# 这个类没有发生继承,他的顺序永远是[类O]
# 只要是单继承,不是多继承,那么mro顺序就是从子类到父类的顺序
day29 Pyhton 面向对象 继承进阶的更多相关文章
- day30 Pyhton 面向对象 继承.装饰器
一面向对象相关 谈谈你对面向对象的理解 1.泛泛谈:什么情况下使用面向对象 2.针对面向对象的 封装 继承 多态一个一个的谈 3.根据你工作中的实际情况对应来举例子 封装 1.广义上:普遍的大家认为的 ...
- day28 Pyhton 面向对象 继承
1.昨日回顾 类的命名空间 静态属性\动态属性(方法) 对象的命名空间 #对象的属性 #类指针:对象能够通过这个类指针找到类 #静态属性:属于类,多个对象共享这个资源 #尽量用类名来操作静态属性 #对 ...
- day29 Pyhton 面向对象 多态 封装
# coding:utf-8 # py2中的经典类 # class D:#没有继承object是经典类# pass # # def func(self): # # print('d') # class ...
- [.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类
[.net 面向对象程序设计进阶] (13) 序列化(Serialization)(五) Json 序列化利器 Newtonsoft.Json 及 通用Json类 本节导读: 关于JSON序列化,不能 ...
- [.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用
[.net 面向对象程序设计进阶] (7) Lamda表达式(三) 表达式树高级应用 本节导读:讨论了表达式树的定义和解析之后,我们知道了表达式树就是并非可执行代码,而是将表达式对象化后的数据结构.是 ...
- python学习第十六天 --继承进阶篇
这一章节主要讲解面向对象高级编程->继承进阶篇,包括类多继承介绍和继承经典类和新式类属性的查找顺序不同之处. 多继承 上一章节我们讲到继承,子类继承父类,可以拥有父类的属性和方法,也可以进行扩展 ...
- python面向对象编程进阶
python面向对象编程进阶 一.isinstance(obj,cls)和issubclass(sub,super) isinstance(obj,cls)检查是否obj是否是类 cls 的对象 1 ...
- 【转】python 面向对象(进阶篇)
[转]python 面向对象(进阶篇) 上一篇<Python 面向对象(初级篇)>文章介绍了面向对象基本知识: 面向对象是一种编程方式,此编程方式的实现是基于对 类 和 对象 的使用 类 ...
- python 继承进阶
继承进阶 面向对象 1.类:具有相同属性和方法 的一类事物 类名可以实例化一个对象 类名可以调用类属性,(静态属性 和(方法)动态属性) 2.对象:也就是实例 对象名:调用对象属性 调用方法 3 ...
随机推荐
- java 检查进程是否存在
以nginx进程为例子 private final static String NAME_STRING = "nginx.exe"; //传入进程名称processName pub ...
- pwnable.kr之input
连接到远程服务器:ssh input2@pwnable.kr -p2222 查看题目所给的代码,根据题目的要求我们要给出所有符合条件的输入才能拿到flag,本来想在输入上动点歪脑筋,结果输入有字节数的 ...
- Oracle序列Sequence用法
序列 序列(Sequence)是用来生成连续的整数数据的对象.序列常常用来作为主键中增长列,序列中的可以升序生成,也可以降序生成.创建序列的语法是:语法结构:创建序列 CREATE SEQUENCE ...
- Jenkins下Vue自动部署(二)
1Jenkins配置 获取首次密码 sudo docker exec jenkins cat /var/jenkins_home/secrets/initialAdminPassword 2 2.1J ...
- Golang多线程简单斗地主
多线程,通道,读写锁(单写多读),随机(洗牌),是本文涉及的主要知识点. 先看一下做出来的效果,因为是实验程序,跟真实的斗地主还是有差距,理解万岁! [发牌员]:洗牌咯. 刷刷刷... [发牌员]:牌 ...
- synchronized底层是怎么实现的?
前言 面试的时候有被问到,synchronized底层是怎么实现的,回答的比较浅,面试官也不是太满意,所以觉得要好好总结一下,啃啃这个硬骨头. synchronized使用场景 我们在使用synchr ...
- [算法与数据结构]使用Java泛型实现栈
###题解 1 实现内部类node 2 维护top为头节点的链表 3 操作 操作1:push() 操作2: pop() 操作3: isEmpty() ###代码 package Exam; class ...
- Git切换分支开发
入职第一家公司做开发的时候使用的项目版本管理工具是svn,公司内部搭建的服务器:在第二.第三家公司做开发的时候,使用的项目版本管理工具是Git,现在大多数公司使用的也是Git.刚进入公司的时候首先做的 ...
- Mysql 多表连查 xml写法 非注解形式
1.xml写法 <!-- 联查用户users表 --> <resultMap type="nanh.entity.Tasks" id="selectTa ...
- 关于java中循环的学习
switch 值是固定的 效率高语法:switch (表达式) { case 常量 1: 语句; break; case 常量 2: 语句; break; … default: 语句; break;} ...