gefunden werden kann, da Sie eine Satz Anzahl von Argumenten haben gerade einen iterable, zum Beispiel aus ihnen erstellen, wickeln die Argumentnamen in einem Tupel-Literal:
for arg in (arg1, arg2, arg3, arg4):
# do stuff
Wenn es Ihnen nichts ausmacht Ihre Funktion in der Lage ist, nur *args
syntax verwenden, um mit mehr args genannt zu werden:
def function1(*args):
for arg in args:
arg = function2(arg)
, die dann die Argumente aussetzt, mit dem die Funktion als Tupel aufgerufen wurde, die iteriert werden kann.
Wenn Sie die Ergebnisse für jeden Aufruf speichern müssen, ist es besser, die for-loop
in einer list comprehension erstellen eine Liste der zurückgegebenen Werte zu erstellen. Zum Beispiel gegeben, eine Funktion, die einen Wert annimmt und fügt einfach 2
es:
def add2(arg):
return arg + 2
def function1(arg1, arg2, arg3, arg4):
a1, a2, a3, a4 = [add2(arg) for arg in (arg1, arg2, arg3, arg4)]
print(a1, a2, a3, a4)
Wir haben eine Liste Verständnis schaffen, die jeden arg
und liefert es an add2
und speichert sie dann als Eintrag in einer Liste nimmt, dann wir entpacken zu a1,..,aN
. Die Werte enthalten jetzt die Ergebnisse der Funktionsaufrufe:
function1(1, 2, 3, 4)
3, 4, 5, 6
In den bisherigen Beispielen (arg1, arg2, arg3, arg4)
immer mit args
ersetzt werden, wenn Sie die *args
Syntax verwenden, wenn die Funktion zu definieren, werden die Ergebnisse ähnlich sein.
Als Nachtrag, wenn Sie mehr ein Fan von funktionaler Programmierung sind, könnten Sie immer map
die Argumente für die Funktion und speichern Sie ein paar Zeichen :-).
def function1(*args):
a1, a2, a3, a4 = map(add2, args)
print(a1, a2, a3, a4)
gleiches Ergebnis: Ich werde eine *args
Definition von function1
diesmal hinzuzufügen.
Es gibt: '* args' für beliebige Argumentlisten –