python 抽象基类 abstractmethod

2019-12-13 15:08:14 浏览数 (1)

使用 abc 模块可以很轻松的定义抽象基类:

from abc import ABCMeta, abstractmethod

class IStream(metaclass=ABCMeta): @abstractmethod def read(self, maxbytes=-1): pass

代码语言:javascript复制
@abstractmethod
def write(self, data):
    pass

抽象类的一个特点是它不能直接被实例化,比如你想像下面这样做是不行的:

a = IStream() # TypeError: Can't instantiate abstract class # IStream with abstract methods read, write 抽象类的目的就是让别的类继承它并实现特定的抽象方法:

class SocketStream(IStream): def read(self, maxbytes=-1): pass

代码语言:javascript复制
def write(self, data):
    pass

0 人点赞