super() woes (n00b)

Deadly Dirk dirk at plfn.invalid
Thu Jun 17 12:53:27 EDT 2010


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.



More information about the Python-list mailing list