Python抽象方法,它有自己的__init__函数

时间:2015-05-28 18:04:24

标签: python python-3.x abstract-class abc

如何在基本抽象类和派生抽象类中定义self.*函数,并在抽象方法中使用所有import abc class BasePizza(object): __metaclass__ = abc.ABCMeta def __init__(self): self.firstname = "My Name" @abc.abstractmethod def get_ingredients(self): """Returns the ingredient list.""" ?例如:

利用在抽象类的基类中导入的函数的正确方法是什么?例如:在base.py中我有以下内容:

import base

class DietPizza(base.BasePizza):
    def __init__(self):
        self.lastname = "Last Name"

    @staticmethod
    def get_ingredients():
        if functions.istrue():
            return True
        else:
            return False

然后我在diet.py中定义方法:

diet.py

但是,当我运行self.lastname时,我只能访问DietPizza。我希望self.firstname同时拥有self.lastname和{{1}}。我怎么能这样做?

1 个答案:

答案 0 :(得分:8)

您的BasePizza.__init__是一种具体方法;只需使用super()调用它:

class DietPizza(BasePizza):
    def __init__(self):
        super().__init__()
        self.lastname = "Last Name"