Python设置要捕获的参数数量

时间:2016-02-02 17:16:57

标签: python

我正在开展一个我做回归的项目,我想使用scipy.optomize.curve_fit来获取一个函数并尝试为它找到正确的参数。奇怪的是,从未给出该函数有多少参数。最终我们猜测它使用了foo.__code__.co_nlocals,但在我们使用它的情况下,我需要33个参数。

问题:是否有办法使用def foo(*x)表示法让python知道它需要一定数量的参数?像def foo(*x[:32])一样?我相信我永远不会在任何真实的代码中使用它,但知道它会很有趣。

2 个答案:

答案 0 :(得分:1)

  

有没有办法使用def foo(* x)表示法让python知道它需要一定数量的参数?

不。此外,scipy.optimize.curve_fit最终会从f.__code__.co_argcount获取其参数计数信息,而不是co_nlocalsn_locals(不存在)。

答案 1 :(得分:0)

实际上,当您为fit指定函数时,它应该如下所示:

def f(x, a, b):
    return a*x**b

第一个参数是变量,其他参数是参数。 Numpy知道这一点,你不需要明确指定参数的数量。