I would like to give a daughter class some extra attributes without having to explicitly call a new method. So is there a way of giving the inherited class an __init__
type method which does not override the __init__
method of the parent class?
I have written the code below purely to illustrate my question (hence the poor naming of attributes etc).
class initialclass(): def __init__(self): self.attr1 = 'one' self.attr2 = 'two' class inheritedclass(initialclass): def __new__(self): self.attr3 = 'three' def somemethod(self): print 'the method' a = inheritedclass() for each in a.__dict__: print each #I would like the output to be: attr1 attr2 attr3
Thank you
As far as I know that's not possible, however you can call the init method of the superclass, like this:
class inheritedclass(initialclass): def __init__(self): initialclass.__init__(self) self.attr3 = 'three'
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With