有没有可能有条件地向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
)
*
和**
的意思。我只是认为原始代码更易读。我认为我不喜欢a if c else b
。 - Sven Marnach**
传递它们。这种方法在有大量参数时仍然易读。 - Wilduck