我想知道是否有一种方法允许您在调用函数时动态添加参数。例如,
def getParameters( num ):
parray = [i for i in range(num) ]
params = tuple( parray )
return params
def func(*args, **kws):
pass
每次调用函数 func 时,参数数量由函数 geParameters 决定,在执行代码之前这是未知的。
例如,在代码中,有人可能会这样做:
param1 = getParameters(2)
//He wants to use param1 to the func
//which would be func(1, 2, 3, 4)
param2 = getParameters(6)
//Likewise, this would be func(1, 2, 3, 4, 5, 6)
但我无法直接将元组传递给函数,python会以这种方式将其视为单个参数。
由于* args是一个包含这些额外参数的元组,有没有办法用 param1 替换 * args 。 (另外,** kws也一样)
提前谢谢!
答案 0 :(得分:1)
要将一个位元参数元组和/或关键字参数字典解包到函数中,请使用相同的语法,使用星号:
def show_args(*args, **kwargs):
print(args, kwargs)
show_args(*(1, 2, 3), **{4: True, 5: False})
在你的情况下,它将是
func(*param1)
但请注意,您的getParameters
实际上并不return
。