Help with super()
Steven Bethard
steven.bethard at gmail.com
Mon Dec 6 17:34:22 EST 2004
Christopher J. Bottaro wrote:
> Why don't this code work?
>
> import PRI
>
> class Poscdnld_PYIO(PRI.BasicBatch):
>
> def __init__(self, *argv):
> super(Poscdnld_PYIO, self).__init__(*argv)
>
> x = Poscdnld_PYIO()
>
> I get this exception:
> File "poscdnld_pyio.py", line 52, in __init__
> super(Poscdnld_PYIO, self).__init__(*argv)
> TypeError: super() argument 1 must be type, not classobj
>
> What am I doing wrong? Thanks.
>
I don't know what PRI is, but I suspect that PRI.BasicBatch is a classic
class, not a new-style class. The super function only works for
new-style classes:
>>> class C:
... def __init__(self):
... super(C, self).__init__()
...
>>> c = C()
Traceback (most recent call last):
File "<interactive input>", line 1, in ?
File "<interactive input>", line 3, in __init__
TypeError: super() argument 1 must be type, not classobj
>>> class C(object):
... def __init__(self):
... super(C, self).__init__()
...
>>> c = C()
>>>
More information about the Python-list
mailing list