面向对象编程中接口和抽象类都是很重要的概念,看看Python中它们的如何实现的。

接口类

在Python中,并没有接口类这种东西!

抽象类

Python本身也不提供抽象类机制!

但是可以借助abc模块实现抽象类,ABC是Abstract Base Class的缩写。

当然,对接口的需求也可以通过abc模块实现。

abc模块

*abc. ABCMeta *

创建抽象基类的元类,abc模块的核心

abc.abstractmethod

修饰抽象函数

abc.abstractproperty

修饰抽象属性

例子

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import abc #利用abc模块实现抽象类

class File(metaclass=abc.ABCMeta):
@abc.abstractmethod #定义抽象方法,无需实现功能
def read(self):
'子类必须定义读功能'
pass

@abc.abstractmethod #定义抽象方法,无需实现功能
def write(self):
'子类必须定义写功能'
pass


class Txt(File): #子类继承抽象类,但是必须定义read和write方法
def read(self):
print('文本数据的读取方法')

def write(self):
print('文本数据的读取方法')