如何在库中使用类的方法?

How to use methods of classes in libaries?

我目前正在尝试弄清楚如何在导入的库中使用方法。例如我们可以使用 scipy.inerpolate.interp2d 函数: https://docs.scipy.org/doc/scipy/reference/generated/scipy.interpolate.interp2d.html

from scipy import interpolate
x = np.arange(-5.01, 5.01, 0.25)
y = np.arange(-5.01, 5.01, 0.25)
xx, yy = np.meshgrid(x, y)
z = np.sin(xx**2+yy**2)
f = interpolate.interp2d(x, y, z, kind='cubic')

import matplotlib.pyplot as plt
xnew = np.arange(-5.01, 5.01, 1e-2)
ynew = np.arange(-5.01, 5.01, 1e-2)
znew = f(xnew, ynew)
plt.plot(x, z[0, :], 'ro-', xnew, znew[0, :], 'b-')
plt.show()

页面底部列出了该函数的所有方法。现在我想知道,我该如何使用这个方法?

scipy.interpolate.inerp2d(x, y, z, kind="cubic").__call__ 无效。

此外,我想了解为什么需要向函数添加方法,而有人只能使用函数输入?

__call__() 方法就是所谓的 dunder 方法或特殊方法。它使您能够执行 f() 之类的操作。由于 python 中的所有内容都是对象,因此 callable 只是支持调用语法 f() 的对象或实例。在这种情况下,您正在导入的 scipy 函数和使用 returns 函数。

您粘贴的示例已正确使用该函数。