我目前正在编写一个名为f_from_data的python定义,到目前为止,我在一行上使用了插值查找点:

def f_from_data(xs, ys, x):
    xfine = np.linspace(min(xs), max(xs), 10000)
    y0 = inter.interp1d(xs, ys, kind = 'linear')
    ans = (y0(xfine))[numpy.searchsorted(xfine, x)]
    ans =  round(ans,2)
    return ans

这给了我我想要的东西,所以我可以输入:
f = f_from_data([3, 4, 6], [0, 1, 2])
print f(3)
>>>0.0

我该怎么做呢?我环顾四周,但似乎找不到任何东西,因为我认为它确实很琐碎,但我只是缺少一些东西。

最佳答案

使用functools.partial:

from functools import partial

f = partial(f_from_data, [3, 4, 6], [0, 1, 2])
partial将创建一个已经设置了前两个参数的可调用对象。

关于python - 如何产生 "Callable function",我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27592161/

10-12 22:04