wie viele Parameter ist die obere Grenze für Python-Methode?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Gast

Donnerstag 8. Dezember 2005, 20:02

Hallo zusammen!

ich habe gerade Pychecker ein Modul prüfen lassen, dann gibt es eine Überraschung:

Pychecker gibt die Meldung: Parameter ist zu viel.

Ist dies wirklich wahr, oder wollte Pychecker nur dies tun, um die anderen zu warnen?

Vielen Dank für Tips!

MfG

Boostpy
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Donnerstag 8. Dezember 2005, 20:22

Hi!

Also ehrlich gesagt weiss ich nichts von einer Parameterobergrenze. Könnte es nicht sein, dass Du einfach die Funktion mit mehr Parametern aufgerufen hast als vorgesehen?

Gruß, mawe
Gast

Donnerstag 8. Dezember 2005, 20:45

Hi mawe,

das ist die Fehlermeldung:

xxx.py:1205: Function (winMenuSelectItem) has too many arguments (11)

ich habe probiert, dass es mit 10 ohne Fehlermeldung gibt!

Selbtsamweise mit den Funktionen gibt es keine Fehlermeldung, nur innerhalb einer Klasse!

Kann jemand bestätigen oder mit Erfahrungen, warum es so ist?!

MfG

Boostpy
mawe
Python-Forum Veteran
Beiträge: 1209
Registriert: Montag 29. September 2003, 17:18
Wohnort: Purkersdorf (bei Wien [Austria])

Donnerstag 8. Dezember 2005, 21:01

Code: Alles auswählen

class Test:
    def __init__(self):
        pass

    def lala(self,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z):
        print a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z

t = Test()
t.lala(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26)
Also das funktioniert :) Um welches Modul handelt es sich denn? Kannst Du etwas Code zeigen?
Gast

Donnerstag 8. Dezember 2005, 21:03

hi mawe!

Danke!

Ich habe genau probiert, meine Beobachtung mit dem Unterschied von Methoden und Funktionen stimmt nicht. Aber die Fehlermeldung bleibt.

Gut ist Python ohne Problem, dass das Script startet und läuft :D

ich werde Pychecker genau anschauen, warum es so eine blöde Warning herausgibt?

MfG

Boostpy
Benutzeravatar
jens
Moderator
Beiträge: 8483
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Donnerstag 8. Dezember 2005, 21:09

Vielleicht ist es eigentlich nur ein Hinweis und keine Fehlermeldung???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
BlackJack

Donnerstag 8. Dezember 2005, 22:44

Ich nehme auch an das es eine Warnung ist. 10 oder 11 Parameter sind auch ein bischen viel. Wie lang muss denn eine Funktion sein um die wirklich alle irgendwie zu verarbeiten!? Das ist oft ein Zeichen dafür, das man zuviel in einer Funktion macht oder die Parameter bzw. Teile davon besser als Objekt, Liste oder Dictionary übergeben sollte.

PyLint warnt in solchen Fällen auch.
Antworten