【发布时间】:2020-02-07 13:23:16
【问题描述】:
当我有一个带有一堆可选参数的函数时
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'))
谢谢大家,如果我无法解释我需要什么,请见谅。
【问题讨论】:
-
有多少个可选参数?它们总是具有相同的价值吗?传递 3 个参数似乎不是问题,您可以交替进行 dict kwargs 映射
-
我猜 30 左右。不是我的职责。我需要通过不到 10 分。这不是一个真正的问题,只是想知道是否有更好的方法来做到这一点。
标签: python arguments parameter-passing