Seite 1 von 1

Wieviele Parameter einer Funkt. in Modulen übergen?

Verfasst: Freitag 6. Februar 2009, 00:09
von py-mule
Hi zusammen ,

ich habe versuchet dem von mir erstellten Modul verwaltung.py, das die Funktion

def dat_kasten(n, p):
print n
print p

enthält vom Hauptprogramm aus mit

verwaltung.dat_kasten(1, 2)

zu übergeben. Dabei bekomme ich folgende Fehlermeldung:

TypeError: dat_kasten() takes exactly 1 argument (2 given)

Was mache ich falsch?

Es sollte doch kein Prolem sein mehrere Parameter zu übergeben oder?

Viele Grüße
py-mule

Verfasst: Freitag 6. Februar 2009, 00:17
von HerrHagen
Nein, sollte es nicht. Kann es vielleicht sein, dass du auf irgendeine ältere Version deiner Datei zugreifst?

Verfasst: Freitag 6. Februar 2009, 00:19
von Sr4l
nichts.

guck nochmal genau nach, poste die ganzen Dateien und setz sie in [ code=py ] tags.

Benutzt du IDLE? Start dein Programm mal nicht über IDLE.

Verfasst: Freitag 6. Februar 2009, 06:59
von Panke
Sr4l hat geschrieben:nichts.

guck nochmal genau nach, poste die ganzen Dateien und setz sie in [ code=py ] tags.

Benutzt du IDLE? Start dein Programm mal nicht über IDLE.
Nimm lieber paste.pocoo.org

Verfasst: Freitag 6. Februar 2009, 10:41
von helduel
Moin,

sieht stark danach aus, als sei die Funktion in Wirklichkeit eine Methode. Es fehlt schlicht das self in der Parameterliste.

Gruß,
Manuel

Verfasst: Freitag 6. Februar 2009, 11:35
von numerix
helduel hat geschrieben:sieht stark danach aus, als sei die Funktion in Wirklichkeit eine Methode. Es fehlt schlicht das self in der Parameterliste.
Nein.
Sr4l hat geschrieben:Benutzt du IDLE? Start dein Programm mal nicht über IDLE.
Nein.

Aller Wahrscheinlichkeit handelt es sich hier um IDLE, das sich - beim Start ohne Subprozess und dann ohne Neustart - alles vorherige merkt. Da hatte dann deine Funktion irgendwann mal nur 1 Parameter in der Liste, schätze ich. Du kannst ruhig weiter IDLE benutzen, ein komplettes Schließen und Neustarten von IDLE würde das Problem dann lösen.

Edit: Meine Analyse kann nicht stimmen! HerrHagen dürfte Recht haben.