Czy można warunkowo przekazać dowolną liczbę nazwanych domyślnych argumentów do funkcji Python?Warunkowe przekazywanie dowolnej liczby domyślnie nazwanych argumentów do funkcji
Na przykład. istnieje funkcja:
def func(arg, arg2='', arg3='def')
Teraz logika jest, że mam warunek, który określa, czy arg3 należy przekazać, mogę to zrobić tak:
if condition == True:
func('arg', arg2='arg2', arg3='some value')
else:
func('arg', arg2='arg2')
Pytanie brzmi, czy mogę mieć skrót jak:
func('arg', 'arg2', 'some value' if condition == True else # nothing so default gets picked
)
Co takiego masz przeciwko ** i *? – Erin
Nic przeciwko '*' i '**'. Po prostu uważam, że oryginalny kod jest bardziej czytelny. Myślę, że nie lubię "a if c else b". –
Alternatywnie, można użyć logiki warunkowej (poza wywołaniem funkcji) do skonstruowania słownika argumentów.Następnie można je przekazać za pomocą '**'. Pozostaje czytelny przy większej liczbie argumentów. – Wilduck