Constructor class problem

Diez B. Roggisch deetsNOSPAM at web.de
Mon Mar 21 14:39:01 CET 2005


Wolfgang wrote:

> Hi,
> I am a newbie and have to modify some python moduls.
> I get the followin error:
> TypeError: __init__() takes exactly 3 arguments (2 given)
> 
> Here the code snippet:
> class gXconv:
>     def __init__(self, pathValue):
>         self.pathValue=pathValue
>         self.__sections = {}
>         self.__spalten = {}
>         self.labelfiles=[]
> etc.....
> 
> call:
>     try:
>         gx=gXconv.gXconv(gXconfPath)
>     except gXconv.gXconvertError, msg:
>         print msg
>         sys.exit(1)


That error can't appear in the above code - is the line in the stacktrace
amongst the shown ones? I doubt it. 

The error means that you tried to call a function with less arguments than
it expected. As in __init__ the first argument is implicit on creation of
an object, the above errormessage indicates that there is an __init__
of the form

class Foo:
    def __init__(self, arg1, arg2)
       pass

called like this

Foo("bar")

But as the only constructor you show _has_ only one additional argument
besides self and line 

gx=gXconv.gXconv(gXconfPath)

shows that you called it properly, the error must come from somewhere else.

-- 
Regards,

Diez B. Roggisch



More information about the Python-list mailing list