【问题标题】:add parameters dynamically in python在python中动态添加参数
【发布时间】:2014-06-08 21:08:01
【问题描述】:

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

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

提前谢谢你!

【问题讨论】:

  • 为什么getParameters(2)会产生4个参数?

标签: python parameters


【解决方案1】:

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

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

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

在你的情况下,它会是

func(*param1)

但是,请注意,您的 getParameters 实际上并没有 return 任何东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-28
    • 2016-06-05
    • 2011-02-26
    • 1970-01-01
    • 2017-12-29
    • 1970-01-01
    • 2011-02-16
    相关资源
    最近更新 更多