È possibile passare un numero arbitrario di argomenti predefiniti denominati a una funzione Python in modo condizionale?Condizionalmente il numero arbitrario di argomenti denominati predefiniti a una funzione
Ad es. c'è una funzione:
def func(arg, arg2='', arg3='def')
Ora la logica è che ho una condizione che determina se arg3 deve essere passato, posso fare in questo modo:
if condition == True:
func('arg', arg2='arg2', arg3='some value')
else:
func('arg', arg2='arg2')
domanda è, posso avere una scorciatoia come:
func('arg', 'arg2', 'some value' if condition == True else # nothing so default gets picked
)
Cos'è che hai contro ** e *? – Erin
Niente contro '*' e '**'. Penso solo che il codice originale sia più leggibile. Penso che non mi piace 'a if c else b'. –
In alternativa, è possibile utilizzare una logica condizionale (al di fuori della chiamata di funzione) per costruire un dizionario di argomenti.Potrebbero essere passati con '**'. Questo rimane leggibile con un numero maggiore di argomenti. – Wilduck