python abc 模块

abc: abstract base class 抽象基类,用法例子:

from abc import ABCMeta, abstractmethod

class Animal(metaclass=ABCMeta):
    def walk(self):
        print("Walking...")

    @abstractmethod
    def num_legs(self):
        pass

class Dog(Animal):
    def __init__(self, name):
        self.name = name

    def num_legs(self):
        return 4


class Monkey(Animal):
    def __init__(self, name):
        self.name = name

    def num_legs(self):
        return 2

class Whale:
    pass

animals = [Dog('Rolf'), Monkey('Bob')]
for a in animals:
    print(a.num_legs())  # 4   2

Animal 是一个抽象类,抽象方法 num_legs 由它的子类实现。

你可能感兴趣的:(python)