У меня есть следующий базовый класс и подкласс:
class Event(object):
def __init__(self, sr1=None, foobar=None):
self.sr1 = sr1
self.foobar = foobar
self.state = STATE_NON_EVENT
# Event class wrappers to provide syntatic sugar
class TypeTwoEvent(Event):
def __init__(self, level=None):
self.sr1 = level
self.state = STATE_EVENT_TWO
Далее в моем коде я проверяю экземпляр класса TypeTwoEvent
, проверяя поле, которое, как я знаю, существует в я ожидал, что базовый класс -будет иметь значение по умолчанию None
. Однако мой код вызывает следующее исключение:
AttributeError :Объект TypeTwoEvent не имеет атрибута 'foobar'
У меня сложилось впечатление, что поля базового класса будут унаследованы подклассом и что создание экземпляра подкласс создаст экземпляр базового класса (и, таким образом, вызовет его конструктор )...
Что я здесь упускаю? Почему TypeTwoEvent
не имеет атрибута foobar
-, если базовый класс, из которого он получен, имеет атрибут foobar
?