Ich denke, die akzeptierte Antwort ist schlecht, aber es kann immer noch funktionieren, wenn Sie das verwenden, was ich als "Perl-Methode" für den Umgang mit Argumenten bezeichnen sollte (ich kenne Perl nicht wirklich, aber ich höre auf, es zu lernen, nachdem ich die subSyntax gesehen habe). mit manuellem Argument entpacken):
Ihre Funktion hat 3 Argumente - so wird sie aufgerufen (Duck tippen, erinnerst du dich?). So bekommen Sie:
def funfun(a, b, c):
return b * 2
2 nicht verwendete Parameter. Aber jetzt geben Sie einen verbesserten Larsmans-Ansatz ein:
def funfun(*args):
return args[1] * 2
Und da gehen die Warnungen ...
Trotzdem genieße ich den Weg der Box immer noch mehr:
def funfun(a, b, c):
del a, c
return b * 2
Die selbstdokumentierende Qualität der Parameternamen bleibt erhalten. Sie sind eine Funktion, kein Fehler.
Aber die Sprache selbst zwingt Sie nicht dorthin - Sie könnten auch umgekehrt vorgehen und einfach alle Ihre Funktionen mit der Signatur versehen (*args, **kwargs)und das Argument jedes Mal manuell analysieren. Stellen Sie sich vor, wie viel Kontrolle Sie haben. Und keine Ausnahmen mehr, wenn Sie nach dem Ändern Ihrer "Signatur" (Anzahl und Bedeutung der Argumente) veraltet aufgerufen werden. Das ist eine Überlegung wert;)