我想知道是否有一种方法可以让您在调用函数时动态添加参数。例如,
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 是一个元组,其中包含这些额外参数,因此是否有办法将 *args 替换为 param1。 (另外,**kws 也是如此)
提前谢谢您!
最佳答案
要将位置参数元组和/或关键字参数字典解压到函数,请使用相同的语法,并使用星号:
def show_args(*args, **kwargs):
print(args, kwargs)
show_args(*(1, 2, 3), **{4: True, 5: False})
就你而言,它是
func(*param1)
但是,请注意,您的 getParameters
实际上不会返回
任何内容。
关于python - python中动态添加参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24110839/