在这个例子中,我有一个带有可选参数的函数 . 例如 .
def func_x(arg_foo='foo'):
# Do something
pass
在调用函数时,我只想在某些条件下指定参数 .
这是一种方法 .
if cond == True:
func_x(arg_foo='coo')
else:
func_x()
但是,我拥有的实际示例(实际上是一个boto3 dynamodb查询函数)具有 many 可选参数,我想在某些条件下指定它们 .
如果我有选择,我宁愿不做以下事情:
if condition_a:
long_func_call(many_optional_argument_names=many_optional_argument_values)
elif condition_b:
long_func_call(many_optional_argument_names=many_optional_argument_values)
elif condition_c:
long_func_call(many_optional_argument_names=many_optional_argument_values)
else:
long_func_call(many_optional_argument_names=many_optional_argument_values)
我尝试过以下但是没有用:
long_func_call(
arg1='' if cond_a else 'value',
arg2=None if cond_b else 'value'
)
我正在调用的函数不接受''和None作为其可选参数的输入 .
有没有办法在某些条件下指定可选参数?
2 回答
使用关键字参数的字典 .
你可以使用lambda