如何找出lambda函数需要多少个参数

2024-05-19 00:24:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试创建一个函数,它将根据传入的lambda函数进行最小二乘拟合。我想创建一个零数组,其长度等于lambda函数对lambda函数的初始猜测所采用的参数个数。所以如果它是线性的,我想要[0,0],对于二次曲线,我想要[0,0,0]。在

#polynomial functions
linear = lambda p, x: p[0] * x + p[1]
quadratic = lambda p, x: p[0] * x**2 + p[1] * x + p[2]
cubic = lambda p, x: p[0] * x**3 + p[1] * x**2 + p[2] * x + p[3]

#polynomial functions forced through 0
linear_zero = lambda p, x: p[0] * x 
quadratic_zero = lambda p, x: p[0] * x**2 + p[1] * x 
cubic_zero = lambda p, x: p[0] * x**3 + p[1] * x**2 + p[2] * x

def linFit(x, y,fitfunc):
    errfunc = lambda p, x, y: fitfunc(p, x) - y     

这里我要创建一个零数组。但在这一点上,p没有定义。所以len(p)不起作用。在

^{pr2}$

Tags: lambda函数参数线性数组functionslinearzero
2条回答

通过查看它的代码对象__code__

>>> p=lambda x,y:x+y
>>> len(p.__code__.co_varnames)
2
>>> p.__code__.co_varnames
('x', 'y')

在python>;=2.7下:

>>> l = lambda a, b: None
>>> l.func_code.co_argcount
2

或低于2.6:

^{pr2}$

相关问题 更多 >

    热门问题