Kann eine beliebige Anzahl von benannten Standardargumenten bedingt an eine Python-Funktion übergeben werden?Bedingte Weitergabe einer beliebigen Anzahl von benannten Standardargumenten an eine Funktion
Für z. gibt es eine Funktion:
def func(arg, arg2='', arg3='def')
Jetzt Logik ist, dass ich eine Bedingung, die bestimmt, ob arg3 weitergegeben werden muss, ich es wie folgt tun:
if condition == True:
func('arg', arg2='arg2', arg3='some value')
else:
func('arg', arg2='arg2')
Frage ist, kann ich eine Kurz wie:
func('arg', 'arg2', 'some value' if condition == True else # nothing so default gets picked
)
Was hast du gegen ** und *? – Erin
Nichts gegen '*' und '**'. Ich denke nur, dass der ursprüngliche Code lesbarer ist. Ich glaube, ich mag kein "a if c else b". –
Alternativ könnte eine bedingte Logik (außerhalb des Funktionsaufrufs) verwendet werden, um ein Argumentwörterbuch zu erstellen.Sie könnten dann mit '**' übergeben werden. Dies bleibt mit einer größeren Anzahl von Argumenten lesbar. – Wilduck