如何在基本抽象类和派生抽象类中定义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}}。我怎么能这样做?
答案 0 :(得分:8)
您的BasePizza.__init__
是一种具体方法;只需使用super()
调用它:
class DietPizza(BasePizza):
def __init__(self):
super().__init__()
self.lastname = "Last Name"