Luke Paireepinart wrote:
Your call to super is wrong. It should be super and you pass the class
and instance, then call init.
On 2/20/10, Alan Harris-Reid <aharrisr...@googlemail.com> wrote:
Hi,
I am having trouble understanding how superclass calls work. Here's
some code...
class ParentClass():
def __init__(self):
do something here
class ChildClass(ParentClass):
def __init__(self):
super().__init__(self) # call parentclass
__init__ method
do something else here
When the super().__init__ line runs I get the error "__init__() takes
exactly 1 positional argument (2 given)"
Can anyone tell me where I have gone wrong? I thought the self
parameter should be passed to all class methods.
TIA
Alan Harris-Reid
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor
Hi Luke, thanks for the reply,
In addition to your suggestion, looks like I can use
class ChildClass(ParentClass):
def __init__(self, arg):
super(ParentClass, self).__init__(arg)
or
super().__init__(arg) # this only works in Python 3, I think
I prefer the 2nd way, as it is more generic (ie. don't need to state
parent-class).
Regards,
Alan
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor