Seite 1 von 1

Objekterzeugung -> zu viele Parameter

Verfasst: Montag 18. Mai 2009, 18:07
von kait
Hallo,

mein Code sieht so aus:

Code: Alles auswählen

self.sMembers = {}
self.sMembersLock = threading.Lock()

self.gRxThread = gTx(self.interface, self.proto)
self.gRxThread.start()

self.gMembersThread = gMembers(self.gRxThread, self.sMembers, self.sMembersLock)
und die __init__ von gMembers:

Code: Alles auswählen

  def __init__(self, gRx, sMembers, sMembersLock):
    threading.Thread.__init__(self)
    self.running = True
    self.sMembers = sMembers
    self.sMembersLock = sMembersLock
    self.gRx = gRx
Beim erzeugen von von self.gMembersThread bekomme ich nur folgende Meldung:

Code: Alles auswählen

TypeError: __init__() takes exactly 3 arguments (4 given)
Bis gerade dachte ich, ich könnte bis 3 zählen. Hat jemand eine Idee woran das liegen kann?

Re: Objekterzeugung -> zu viele Parameter

Verfasst: Montag 18. Mai 2009, 18:16
von numerix
kait hat geschrieben:Bis gerade dachte ich, ich könnte bis 3 zählen. Hat jemand eine Idee woran das liegen kann?
Möglicherweise suchst du an der falschen Stelle:
In der Tat übergibst du 4 Parameter, nämlich die drei expliziten bei der Instanzbildung und einen impliziten (das, was bei der Methodendefiniton von __init__() das self ist).

Das Problem ist eher, dass die Fehlermeldung nicht mit deiner gezeigten __init__()-Methode zusammenpasst, denn die erwartet nicht 3 Parameter, sondern 4 (inkl. des impliziten). Die Fehlermeldung sagt aber, es würden nur 3 Parameter erwartet, d.h. 2 explizite.

Verfasst: Montag 18. Mai 2009, 19:02
von kait
Also die Stelle im Code ist die richtige. Zumindest passen die Zeilennummern die der Interpreter auswirft.
Sehr komisch :(

Verfasst: Dienstag 19. Mai 2009, 10:05
von EyDu
Ich tippe auf Idle und ein nicht neu geladenes Modul.

Verfasst: Dienstag 19. Mai 2009, 10:21
von kait
EyDu hat geschrieben:Ich tippe auf Idle und ein nicht neu geladenes Modul.
Kannst du evtl. etwas näher erklären was du meinst? Ich verstehe nämlich gerade nur Bahnhof ;)

Edit: Ach so, falls du mit Idle die IDE meinst, die benutze ich nicht.

Verfasst: Dienstag 19. Mai 2009, 15:36
von kait
Habs gefunden,... Ist mir aber peinlich zu verraten woran es lag.

Na gut, fürs Archiv: Man sollte seinen Klassen schon unterschiedliche Namen geben :oops: