Ja, das ist, was ich hätte sagen sollen.
def foo(*args):
return bar(*args)
Sie müssen die Funktion nicht mit (a, b, c) deklarieren. bar (...) bekommt was auch immer foo (...) bekommt.
Meine anderen mieseren Antwort ist unten:
ich zur Beantwortung so nah war „Nein, kann es nicht leicht getan werden“, aber mit ein paar zusätzlichen Linien, ich glaube, es kann. @cbrauchli große Idee mit Einheimischen(), aber da Einheimische() auch lokale Variablen zurückgibt, wenn wir
def foo(a,b,c):
n = "foobar" # any code that declares local variables will affect locals()
return bar(**locals())
tun wir ein unerwünschtes 4. Argument werden vorbei, n, bar (a, b, c) und wir werden einen Fehler bekommen. Um dies zu lösen, würden Sie so etwas wie Argumente = Einheimischen() in der ersten Zeile das heißt
def foo(a, b, c):
myargs = locals() # at this point, locals only has a,b,c
total = a + b + C# we can do what we like until the end
return bar(**myargs) # turn the dictionary of a,b,c into a keyword list using **
Wie wurde diese Antwort akzeptiert, wenn @ Andrews einfacher ist, mehr Pythonic und direkt auf den Punkt? – ereOn
Ich bin wirklich ziemlich erstaunt. – pagga