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

Reply via email to