Как определить функцию __init__
как в базовом, так и в производном абстрактных классах и иметь все self.*
в абстрактном методе? Например: Python Abstract Method With Собственная функция __init__
Каков правильный способ использования функций, импортируемых в базовый класс абстрактного класса? Например: в 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
. Как я могу это сделать?
Отлично, спасибо за ответ. Я приму это через 10 минут, когда они меня отпустят. – user2694306
Вам не нужно указывать вызывающий объект и класс, т. Е. 'Super (DietPizza, self) .__ init __()'? – BoltzmannBrain
@BoltzmannBrain: Не в Python 3, нет. –