Python的功能模块[2] -> abc -> 利用 abc 建立抽象基类
2024-09-29 12:45:20
abc模块 / abc Module
在定义抽象方法时,为了在初始化阶段就检测是否对抽象方法进行了重定义,Python 提供了 abc 模块。
from abc import ABCMeta, abstractmethod # Generate a abstract base obj - MyABC
class MyABC(metaclass=ABCMeta):
#__metaclass__ = ABCMeta
@abstractmethod
def run(self):
pass class Foo(MyABC):
def run(self):
print('run') f = Foo()
f.run()
第 4 行:生成一个抽象的基类 MyABC,这其中利用了 metaclass 元类的相关用法
第 6-7 行:抽象方法及装饰器,抽象方法可以不执行任何程序,但是子类中必须重定义这个函数
第 10 行:定义 MyABC 的子类 Foo,此时若 Foo 中没有定义 run 方法,则在运行前便会产生报错,而不是等到运行后才报错
Note: abc.ABCMeta 这是用来生成抽象基础类的元类。由它生成的类可以被直接继承。
相关阅读
参考链接
http://blog.csdn.net/igorzhang/article/details/39026885
最新文章
- ASP.NET TextBox 当鼠标点击后清空默认提示文字[转]
- 数据持久化以及DAO模式的简单使用
- hibernate的缓存机制
- 细菌觅食算法-python实现
- 2. Basic environment configuration
- 在美国看中国HTML5市场的发展
- gsoap框架下的onvif程序流程分析
- 常用linux命令和配置
- IO.Path路径
- delphi下实现控制其它窗体中的控件代码模板(delphi 7安装程序)
- spring boot整合shiro
- php 中 global 与 $GLOBAL 的区别
- erlang并发编程
- Gurobi在Python环境里安装与使用(Windows环境)
- 加入EOS主网
- CentOS下yum命令详解
- 关于Struts2的文件上传
- Ordering Tasks 拓扑排序
- Linux学习2-Linux分区方式
- Report_Report Builder的一些基本概念(概念)
热门文章
- 前端初学者——初探Modernizr.js Modernizr.js笔记
- SqlHelper——数据库小助手
- 火焰图还有perf
- POJ 3304 Segments | 线段相交
- 公路建设 (highway.c/cpp/pas)
- 【CF Edu 28 B. Math Show】
- ionic2.x 手动搭建开发环境教程分享(nodejs,jdk,ant,androidsdk)
- Codeforces:Good Bye 2018(题解)
- SICAU-OJ: 数字游戏
- 如何在Windows2008中禁用IPv6