Абстрактный метод Python с собственной функцией __init__
Как я могу определить __init__
функционируют как в базовых, так и в производных абстрактных классах и имеют все 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
, я бы хотел DietPizza
иметь оба self.firstname
а также self.lastname
, Как я могу это сделать?
1 ответ
Решение
Ваш BasePizza.__init__
конкретный метод; просто вызвать его, используя super()
:
class DietPizza(BasePizza):
def __init__(self):
super().__init__()
self.lastname = "Last Name"