super() woes (n00b)
Matteo Landi
landimatte at gmail.com
Thu Jun 17 13:51:25 EDT 2010
I found few error in your code:
1 the constructor of P class seems to be wrong:
>>> class P(object):
... def __init__(self):
... print("I am a member of class P")
...
2 super() works with new style classes, i.e. the ones which inherit
from 'object'
>>> class P:
... def __init__(__class__,self):
... print("I am a member of class P")
...
3 super() need a type as first argument, and an instance as second one:
>>> class C(P):
... def __init__(self):
... super().__init__(self)
... print("I am a member of class C")
Now it should work (not tested).
On Thu, Jun 17, 2010 at 6:53 PM, Deadly Dirk <dirk at plfn.invalid> wrote:
> On Thu, 17 Jun 2010 16:36:10 +0000, Deadly Dirk wrote:
>
>> I cannot get right the super() function: Python 3.1.1+ (r311:74480, Nov
>> 2 2009, 14:49:22) [GCC 4.4.1] on linux2
>> Type "copyright", "credits" or "license()" for more information. ==== No
>> Subprocess ====
>>>>> class P:
>> def __init__(__class__,self):
>> print("I am a member of class P")
>>
>>
>>>>> class C(P):
>> def __init__(self):
>> super().__init__(self)
>> print("I am a member of class C")
>>
>>
>>
>> class P:
>> def __init__(self):
>> print("I am a member of class P")
>>
>> class C(P):
>> def __init__(self):
>> super().__init__(self)
>> print("I am a member of class C")
>>
>> x=C()
>>
>> That is more or less the text from the "Quick Python Book". What am I
>> doing wrong?
>
> I tried this, too:
>
>>>> class C(P):
> def __init__(self):
> super(__class__).__init__(self)
> print("I am a member of class C")
>
>
>>>> x=C()
> Traceback (most recent call last):
> File "<pyshell#30>", line 1, in <module>
> x=C()
> File "<pyshell#29>", line 3, in __init__
> super(__class__).__init__(self)
> TypeError: must be type, not C
>>>>
>
>
>
> --
> The missionaries go forth to Christianize the savages -
> as if the savages weren't dangerous enough already.
> --
> http://mail.python.org/mailman/listinfo/python-list
>
--
Matteo Landi
http://www.matteolandi.net/
More information about the Python-list
mailing list