Python抽象方法及其应用&x27;s自己的uu初始化uu函数
如何在基本抽象类和派生抽象类中定义Python抽象方法及其应用&x27;s自己的uu初始化uu函数,python,python-3.x,abstract-class,abc,Python,Python 3.x,Abstract Class,Abc,如何在基本抽象类和派生抽象类中定义\uuuuu init\uuuu函数,并使所有self.*在抽象方法中可用?例如: 使用在抽象类的基类中导入的函数的正确方法是什么?例如:在base.py中,我有以下内容: import abc class BasePizza(object): __metaclass__ = abc.ABCMeta def __init__(self): self.firstname = "My Name" @abc.abstrac
\uuuuu init\uuuu
函数,并使所有self.*
在抽象方法中可用?例如:
使用在抽象类的基类中导入的函数的正确方法是什么?例如:在base.py中,我有以下内容:
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."""
然后我在diet.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
时,我只能访问self.lastname
。我希望self.firstname
和self.lastname
都有。我该怎么做呢?你的BasePizza.\uuu init\uuuu
是一个具体的方法;只需使用super()
调用它:
太好了,谢谢你的回答。如果他们允许,我会在10分钟内接受。您不需要指定调用对象和类,即super(DietPizza,self)。\uuuu init\uuuu()
?@BoltzmannBrain:不在Python 3中,不需要。@MartijnPieters touché,谢谢。
class DietPizza(BasePizza):
def __init__(self):
super().__init__()
self.lastname = "Last Name"