The subclass should be:
class TypeTwoEvent(Event): def __init__(self, level=None, *args, **kwargs): super().__init__(*args, **kwargs) self.sr1 = level
__init__ is overridden, the base class’
__init__ code will only run if it is explicitly requested.
Despite its strange name,
__init__ is not specially treated. It gets called automatically after the object is created; but otherwise it’s an ordinary method, and ordinary inheritance rules apply.
super().__init__(arguments, that, go, to, parents)
is the syntax to call the parent version of the method. Using
**kwargs allows us to catch additional arguments passed to
__init__ and pass them to the parent method; this way, when a
TypeTwoEvent is created, a value can be specified for the
foobar, along with anything else specific to the base class.