Constructor class problem
Joal Heagney
joal at bigpond.net.au
Tue Mar 22 06:38:55 EST 2005
Diez B. Roggisch wrote:
> 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.
>
And the easiest way to track it down is to add some temporary
print "I am in <some function or method name>."
debug messages through your code.
By looking at which messages pop up, you can trace what happens just
before your program bombs.
Joal
More information about the Python-list
mailing list