Условная передача произвольного числа именованных аргументов по умолчанию в функцию

Можно ли условно передать произвольное количество именованных аргументов по умолчанию в функцию Python?

Например, есть функция:

def func(arg, arg2='', arg3='def')

Теперь логика заключается в том, что у меня есть условие, которое определяет, нужно ли передавать arg3, я могу сделать это следующим образом:

if condition == True:
    func('arg', arg2='arg2', arg3='some value')
else:
    func('arg', arg2='arg2')

Вопрос в том, могу ли я иметь сокращенную форму, например:

func('arg', 'arg2', 'some value' if condition == True else # nothing so default gets picked
)
11
задан 12 January 2011 в 15:39
поделиться