KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
I have this base class and subclass: class Event: def __init__(self, sr1=None, foobar=None): self.sr1 = sr1 self.foobar = foobar # Event class wrappers to provide syntatic sugar class TypeTwoEvent(Event): def __init__(self, level=None): self.sr1 = level Later on, when I try to check the foobar attribute of a TypeTwoEvent instance, I get an exception. For example, testing this at the REPL: >>> event = TypeTwoEvent() >>> event.foobar Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: 'TypeTwoEvent' object has no attribute 'foobar' I thought that the base class attributes would be inherited by the subclass and that creating an instance of a subclass would instantiate the base class (and thus invoke its constructor). Therefore, I expected the foobar attribute value to be defaulted to None . Why do TypeTwoEvent instances not have a foobar attribute, even though Event instances do?
Tags (comma-separated)
Save Edits
Cancel