python 定义并使用抽象基类
一、定义一个抽象基类 我们现在定义一个抽象基类 ,它的职责之一是,支持用户提供随 机挑选的无重复类。 受到“栈”和“队列”(以物体的排放方式说明抽象接口)启发,我将使用现实世界中的 物品命名这个抽象基类:宾果机和彩票机是随机从有限的集合中挑选物品的机器,选出的 物品没有重复,直到选完为止,我们把这个抽象基类命名为 Tombola。 Tombola 抽象基类有四个方法,其中两个是抽象方法。 抽象方法 1, .load(…):把元素放入容器。 2,.pick():从容器中随机拿出一个元素,返回选中的元素。 具体方法 1, .loaded():如果容器中至少有一个元素,返回 True。 2,.inspect():返回一个有序元组,由容器中的现有元素构成,不会修改容器的内容(内 部的顺序不保留)。 import abc # 自己定义的抽象基类要继承 abc.ABC。 class Tombola(abc.ABC): # 抽象方法使用 @abstractmethod 装饰器标记,而且定义体中通常只有文档字符串。 @abc.abstractmethod def load(self, iterable): """ 从可迭代对象中添加元素。 """ # 根据文档字符串,如果没有元素可选,应该抛出 LookupError。 @abc.abstractmethod def pick(self): """