将相同值传递给参数的紧凑方法

2024-04-28 19:59:28 发布

您现在位置:Python中文网/ 问答频道 /正文

当我有一个带有一堆可选参数的函数时

def function_name(arg1=0, arg2=0, arg3=0, arg4=0, ...):
      .....doing anything

我想把相同的值传递给其中一些

function_name(arg1=1, arg3=1, arg6=1)

有没有更紧凑的方法? 所以我不必一直复制=value并填充行

经过几次有益的回答,我想我找到了我想要的答案:

def myargs(value, *args):
    kargs = {}
    for arg in args:
        kargs[arg] = value
    return kargs


function_name(**myargs(1, 'arg1', 'arg3', 'arg6'))

谢谢,伙计们,如果我不善于解释我需要什么,我很抱歉


Tags: 函数name参数valuedefargargsfunction
3条回答

您可以使用默认参数:

def func(arg1, arg2, def_arg1="1", def_arg2="2"):
    pass

如果具有相同值的参数是连续的,则:

def function_name(arg1=0,arg2=0,arg3=0,arg4=0):
    print(arg1, arg2, arg3, arg4)

function_name(2, *[1] * 3)

印刷品:

2 1 1 1

您只需使用**kwargs

def function_name(arg, argOpt1=0, argOpt2=0, **kwargs):
    pass

kwargs = {"argOpt1" : 123, "argOpt2" : 234} 
function_name('argument1', kwargs)

看看thisthis

相关问题 更多 >