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