在python中动态添加参数

时间:2014-06-08 21:08:01

标签: python parameters

我想知道是否有一种方法允许您在调用函数时动态添加参数。例如,

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也一样)

提前谢谢!

1 个答案:

答案 0 :(得分:1)

要将一个位元参数元组和/或关键字参数字典解包到函数中,请使用相同的语法,使用星号:

def show_args(*args, **kwargs):
    print(args, kwargs)

show_args(*(1, 2, 3), **{4: True, 5: False})

在你的情况下,它将是

func(*param1)

但请注意,您的getParameters实际上并不return