如何在库中使用类的方法?
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 函数。
您粘贴的示例已正确使用该函数。
我目前正在尝试弄清楚如何在导入的库中使用方法。例如我们可以使用 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 函数。
您粘贴的示例已正确使用该函数。