python抽象基类用法实例分析
作者:MaxOmnis 发布时间:2021-03-04 11:06:25
标签:python,抽象,基类
本文实例讲述了python抽象基类用法。分享给大家供大家参考。具体如下:
定义抽象类,需要使用abc模块,该模块定义了一个元类(ABCMeata),和装饰器 @abstractmethod, @abstractproperty
如果要实例化继承了Foo 的子类,子类必须实现了Foo所有的抽象方法(跟java一样),否则实例化报错。
抽象类不能直接实例化
#!coding=utf-8
from abc import ABCMeta, abstractmethod, abstractproperty
class Foo:
__metaclass__ = ABCMeta
@abstractmethod
#在python3.0中 使用 class Foo(metaclass=ABCMeta)语法
def spam(self, a, b):
pass
@abstractproperty
def name(self):
pass
class Bar(Foo):
def spam(self, a, b):
print a, b
def name():
pass
b = Bar()
b.spam(1,2)
抽象基类支持对已经存在的类进行注册,使其属于该基类,使用register()方法
向抽象基类注册某个类,对于注册类中的实例,涉及后续基类的类检测操作比如(isinstance, issubclass) 将返回True,向抽象基类注册某个类时,不会检查该类是否实现了任何抽象方法或特性,这种注册过程只会影响类型检查
class Crok(object):
def spam(self, a, c):
print "gork.span"
Foo.register(Grok)
希望本文所述对大家的Python程序设计有所帮助。


猜你喜欢
- 目录一.函数定义二.斐波那契数三.阶乘总结一.函数定义1.首先我们要明白一个函数的性质,我们定义一个函数,是为了在后面直接应用它。2.下面这
- 1.算法:(设查找的数组期间为array[low, high])(1)确定该期间的中间位置K(2)将查找的值T与array[k]比较。若相等
- 本文所述实例来自独立软件开发者 Alex Marandon,在他的博客中曾介绍了数个关于 Python Collection 的实用小技巧,
- 应用场景在开发“发送短信验证”功能时候,要解决一个问题,防止恶意或频繁发送短信验证码问题。一般原理是“当点击发送按钮时,发送ajax请求到服
- 网上的教程大多数是教大家如何加载自定义模型和函数,如下图这个SelfAttention层是在训练过程自己定义的一个class,但如果要加载这
- TKinter库,Python 的 GUI 库非常多,之所以选择 Tkinter,一是最为简单,二是自带库,不需下载安装,随时使用,跨平台兼
- select信道处理注意:有default就不会阻塞package mainfunc main() {var chan1 = make(ch
- 在网上搜索的时候,经常看到两种打开方式: dispatch和EnsureDispatchimport win32com.client as
- 下面是asp代码实现列出sql数据库中存储过程的功能,可自行添加其它功能:< HTML >< 
- 一、基本类型和引用类型基本的数据类型有5个:undefined,boolean,number,string,nulltypeof null;
- 很久没有更新blog了,这段时间实在是发生了很多的事,累身累心。但还是有很多想做的事,比如更新merceCSS、把一直以来所总结的有关模块化
- 本文分析了MySQL中字符串索引对update的影响。分享给大家供大家参考,具体如下:对某一个类型为varchar的字段添加前缀索引后,基于
- 通常,在完成了一件网页设计后,设计师的无知都会显露无遗而备受指责。他们把创建网页代码的繁重工作都留给了程序员们。这种现象不只出现在网络开发行
- 神经网络的逻辑应该都是熟知的了,在这里想说明一下交叉验证交叉验证方法:看图大概就能理解了,大致就是先将数据集分成K份,对这K份中每一份都取不
- 1.reshapereshape是重塑,常用的三种写法如下:numpy.arange(n).reshape(a, b) &nb
- 天气真的是越来越冷啦,有时候我们想翻看网页新闻,但是又冷的不想把手拿出来,移动鼠标翻看。这时候,是不是特别想电脑像讲故事一样,给我们念出来呢
- Python sorted() 函数sorted() 函数对所有可迭代的对象进行排序操作sorted 语法:sorted(iterable,
- 获取页面的编码,如果是IE浏览器用document.charset即可获取,如果用firefox需要用document.characterS
- SQL Server 2000使得以XML导出数据变得更加简单,但在SQL Server 2000中导入XML数据并对其进行处理则有些麻烦。
- FreeType库是一个完全免费(开源)的、高质量的且可移植的字体引擎,它提供统一的接口来访问多种字体格式文件,包括TrueType, Op