Dziedziczenie klas Pythona: AttributeError: Obiekt „[SubClass]” nie ma atrybutu „xxx”
Mam następującą klasę podstawową i podklasę:
<code>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 </code>
Dalej w moim kodzie sprawdzam instancję klasy TypeTwoEvent, sprawdzając, czy wiem, że pole istnieje w klasie bazowej - oczekiwałem, że będzie domyślnie wartość None. Jednak mój kod wywołuje następujący wyjątek:
AttributeError: Obiekt „TypeTwoEvent” nie ma atrybutu „foobar”
Miałem wrażenie, że pola klasy bazowej będą dziedziczone przez podklasę, a utworzenie instancji klasy podrzędnej spowoduje utworzenie instancji klasy bazowej (a tym samym wywołanie jej konstruktora) ...
Czego tu brakuje? DlaczegoTypeTwoEvent
nie mamfoobar
atrybut - gdy klasa bazowa, z której pochodzi, mafoobar
atrybut?