博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
抽象类
阅读量:4347 次
发布时间:2019-06-07

本文共 765 字,大约阅读时间需要 2 分钟。

1 from abc import ABCMeta, abstractmethod 2  3 class Super(object): 4     __metaclass__ = ABCMeta 5  6     def delegate(self): 7         self.action() 8  9     @abstractmethod10     def action(self):11         pass12 13     @abstractmethod14     def method(self):15         pass

使用metaclass与@abstractmethod定义python抽象类

现在 Super() 是个抽象类,如果尝试实例化 Super 类:

x = Super()

会引发:TypeError: Can't instantiate abstract class Super with abstract methods action, method

继承 Super 类,实现 action, method 方法。

1 class Sub(Super): 2     def action(self): 3         print 'spam' 4  5     def method(self): 6         print 'method' 7  8 if __name__ == '__main__': 9     x = Sub()10     x.delegate()11     x.method()

运行结果:

>>>
spam
method

 

 

 

转载于:https://www.cnblogs.com/Roger1227/p/3235876.html

你可能感兴趣的文章
FOC实现概述
查看>>
gethostbyname与sockaddr_in的完美组合
查看>>
旋转变换(一)旋转矩阵
查看>>
thinkphp3.2.3 bug集锦
查看>>
C# 创建 读取 更新 XML文件
查看>>
KD树
查看>>
VsVim - Shortcut Key (快捷键)
查看>>
HDU5447 Good Numbers
查看>>
08.CXF发布WebService(Java项目)
查看>>
java-集合框架
查看>>
RTMP
查看>>
求一个数的整数次方
查看>>
点云PCL中小细节
查看>>
铁路信号基础
查看>>
RobotFramework自动化2-自定义关键字
查看>>
CMU Bomblab 答案
查看>>
技术分析淘宝的超卖宝贝
查看>>
Azure云服务托管恶意软件
查看>>
My安卓知识6--关于把项目从androidstudio工程转成eclipse工程并导成jar包
查看>>
旧的起点(开园说明)
查看>>