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 <d...@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/ -- http://mail.python.org/mailman/listinfo/python-list