[Python-de] Funktionsparameter
"Martin v. Löwis"
martin at v.loewis.de
Son Nov 21 18:20:19 CET 2004
Mike Senner wrote:
>>>>add(l[:])
>
> Traceback (most recent call last):
> TypeError: add() takes exactly 3 arguments (1 given)
Der direkte Weg wäre
add(l[0], l[1], l[2])
Das sollte völlig klar sein, und erklärt auch dem Leser,
was hier passiert. Jemand hat (richtigerweise) add(*l)
vorgeschlagen. Obwohl das funktioniert, möchte ich in
diesem Fall davon abraten - das *-Zeichen scheint Dich
zu sehr zu verwirren, als das Du es nutzbringend verwenden
kannst.
> Eine Möglichkeit wäre das Folgende, aber die andere
> Variante hilft bei der Lesbarkeit und der Wartung.
>
> def add(*arg):
> user, passwd, mest = arg
> dosomthing()
Hast Du diese Möglichkeit mal ausprobiert? Sie
funktioniert tatsächlich nicht (oder zumindest nicht
besser als das, was Du jetzt schon hast).
Ciao,
Martin