Python第十七天 抽象类
from abc import ABCMeta, abstractmethod class A(metaclass=ABCMeta): 称 A 为抽象类
@abstractmethod
def test(self):pass test 为抽象方法, 必须由继承的子类实现具体功能 class B(A):
pass B() 只要创建类 B 的 对象, 就会报错
TypeError: Can't instantiate abstract class B with abstract methods test
python3,以后,新式类, 多继承,方法的查找顺序, 广度优先算法
class A:
def test(self):
print('in A') class B(A):
def test(self):
print('in B')
super().test() class C(A):
def test(self):
print('in C')
super().test() class D(B):
def test(self):
print('in D')
super().test() class E(C):
def test(self):
print('in E')
super().test() class F(D, E):
def test(self):
print('in F')
super().test() F().test() print(F.mro())
执行结果
in F
in D
in B
in E
in C
in A
[<class '__main__.F'>, <class '__main__.D'>, <class '__main__.B'>, <class '__main__.E'>, <class '__main__.C'>, <class '__main__.A'>, <class 'object'>]
Python第十七天 抽象类的更多相关文章
- python六十七课——网络编程(基础知识了解)
		网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ... 
- 孤荷凌寒自学python第二十七天python的datetime模块及初识datetime.date模块
		孤荷凌寒自学python第二十七天python的datetime模块及初识datetime.date模块 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.datetime模块 dateti ... 
- 孤荷凌寒自学python第十七天初识Python的函数
		孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ... 
- python学习道路(day8note)(抽象类,类的方法,异常处理,socket编程)
		1.#面向对象 #抽象接口 === 抽象类 #就是架构师给你一个架子,你们去写,如果满足不了直接报错 #python2 print("python2---抽象类".center(2 ... 
- python之继承、抽象类、新式类和经典类
		一.上节补充1.静态属性静态属性 : 类的属性,所有的对象共享这个变量 如果用对象名去修改类的静态属性:在对象的空间中又创建了一个属性,而不能修改类中属性的值 操作静态属性应该用类名来操作 例1:请你 ... 
- 第四百一十二节,python接口,抽象方法抽象类
		Python接口 在Python中所谓的接口,有两种,一种是通过url访问的api接口 一种是一个对象的接口 构造接口 class Ijiekou: """ 定义一个约束 ... 
- python之接口与抽象类
		一.接口与归一化设计 1.什么是接口 1)是一组功能集合 2)接口的功能是用于交互 3)接口只定义函数,但不涉及函数的实现 4)这些功能是相关的 2.为什么要用接口 接口提取了一群类共同的函数,然后让 ... 
- python的接口和抽象类
		抽象基类 有些面向对象的语言,如JAVA,支持接口,可以声明一个支持给定的一些方法方法,或者支持给定存取协议的类.抽象基类(或者ABCs)是Python里一个相同的特性.抽象基类由abc模块构成,包含 ... 
- 【学习笔记】--- 老男孩学Python,day18 面向对象------抽象类(接口类), 多态, 封装
		抽象类,接口类 Python没有接口这个概念 抽象类(接口类): 目的是制定一个规范 要学会归一化设计,有重复的东西就要想把它们合并起来 from abc import ABCMeta, abstra ... 
随机推荐
- linux下导入、导出mysql数据库命令的实现方法
			首先建空数据库 mysql>create database abc; 导入数据库 mysql>use abc; 设置数据库编码 mysql>set names utf8; 导入数据( ... 
- es6的理解
			目录:let——和var的区别const 特性:暂时性死区解构赋值 [] {}属性简洁函数简洁 属性表达式可以作为对象的属性名字符串扩展数组扩展对象扩展 Object.getPrototypeOf(实 ... 
- 定制你自己的vim编辑器
			今天定制了一下自己的vim编辑器,效果嘛,谁用谁知道!话不多说,直奔主题.vim编辑器的配置都在/etc/vimrc文件中. #vim /etc/vimrc 打开配置文件,在尾部添加如下的,不是全都必 ... 
- JSON语法
			JSON:JavaScript 对象表示法(JavaScript Object Notation). JSON 是存储和交换文本信息的语法.类似 XML. JSON 比 XML 更小.更快,更易解析. ... 
- java面试题复习(三)
			21.静态嵌套类和内部类的不同? 答:静态嵌套类是被声明为静态(static)的内部类,它可以不依赖于外部类实例被实例化.而通常的内部类需要在外部类实例化后才能实例化.//还是考的static的知识 ... 
- 使用events.EventEmitter 控制Node.js 程序执行流程
			使用events.EventEmitter 控制Node.js 程序执行流程 标题写的可能也不太对,大家领会精神: Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台. ... 
- angular的符号
			1.括号 {{模板标签}}: 模板标签中的内容会被当作一个表达式展开. [传入名] = ”接收变量名“: 可以把一个值传入组件.输入. (事件名) = “处理函数()”: 响应事件.输出. #视图变量 ... 
- centos7.4下的KVM虚拟机安装使用
			本来是用的vmware,不过后来想试下KVM,想着装个ZSTACK也行,结果zstack使用网络安装没搞明白,把物理机系统毁了,这下彻底完蛋了,只好还装个centos了,但是又不想用VMWARE就想起 ... 
- XproerIM2-更新-2017-6-28
			资源下载:源代码,开发文档,客户端,openfire-3.9.3.exe,openfire-4.1.4.exe, 开源库:cximage600-full,boost-1.55.0,pugixml-1. ... 
- Servlet中清除session
			HttpSession sessions = request.getSession(false);//防止创建Session if(sessions == null){ response.sendRe ... 
