Seite 1 von 1

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

Verfasst: Donnerstag 8. Dezember 2005, 20:02
von Gast
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

Verfasst: Donnerstag 8. Dezember 2005, 20:22
von mawe
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

Verfasst: Donnerstag 8. Dezember 2005, 20:45
von Gast
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

Verfasst: Donnerstag 8. Dezember 2005, 21:01
von mawe

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?

Pychecker -Warning?!

Verfasst: Donnerstag 8. Dezember 2005, 21:03
von Gast
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

Verfasst: Donnerstag 8. Dezember 2005, 21:09
von jens
Vielleicht ist es eigentlich nur ein Hinweis und keine Fehlermeldung???

Verfasst: Donnerstag 8. Dezember 2005, 22:44
von BlackJack
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.