【问题标题】:Passing and using dinamically arguments in python functions在 python 函数中动态传递和使用参数
【发布时间】:2020-03-02 08:26:16
【问题描述】:

我确实有一个函数可以接收一个列表和一些参数,稍后这个函数会根据参数和提供的列表创建一个线性方程。

def modelFunction(data, a, b, c, offset):
    f = (data[0] * a) + (data[1] * b) + (data[2] * c) + offset
    return f

我想动态创建参数并动态创建线性方程。 最终目标应该是我可以在每次调用时创建一个具有不同数量参数的不同函数。 例子: 如果我需要创建一个具有 2 个参数的线性方程并且它是截距的,那么它会创建一个函数,例如:

data 是 len=2 的列表

def modelFunction(data, a, b,offset):
    f = (data[0] * a) + (data[1] * b) + offset
    return f

如果我需要创建一个具有 3 个参数的线性方程并且它是截距的,那么它会创建一个函数,例如:

data 是 len=3 的列表

def modelFunction(data, a, b, c, offset):
    f = (data[0] * a) + (data[1] * b) + (data[2] * c) + offset
    return f

我相信 * 运算符可能会帮助我,但无法弄清楚

【问题讨论】:

  • 为什么不将 a、b、c 等作为元组或可以迭代的东西传递?
  • 其他使用modelFunction()函数的程序要求,它是参数和偏移量,用于进行回归、聚类、优化等

标签: python parameters arguments wrapper


【解决方案1】:

为简洁省略了等长检查:

def modelFunction(data, *coeffs):
    return sum(d * c for d, c in zip(data, coeffs)) + coeffs[-1]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 2019-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-30
    • 2013-12-09
    • 1970-01-01
    相关资源
    最近更新 更多