【问题标题】:Call odeint inside Python class在 Python 类中调用 odeint
【发布时间】:2018-10-20 02:44:40
【问题描述】:

我正在尝试在 python 类的方法中调用 odeint:

从 scipy.integrate 导入 o​​deint

类测试:

@staticmethod
def mathfunc(y, t arg1, arg2):
    x , xdot = y
    #some equations
    return xdot, xddot

def numericalsim(self, y0, t):
    y = odeint(mathfunc, y0, t, args(self.param1, self.param2))
    return y

但是,我收到错误消息:未定义名称“mathfunc”。 请你帮我在课堂上调用 odeint。

【问题讨论】:

  • Python 告诉你它找不到mathfunc 而不是odeint

标签: python class scipy


【解决方案1】:

您还可以分享一下您是如何导入模块的吗? 并且由于它是一个静态方法,因此您需要使用您的类来调用它。 像这样:

y = odeint(SomeClass.mathfunc, y0, t, args(self.param1, self.param2))

希望对你有帮助。

【讨论】:

  • 对对对,你在哪里更快哈哈加一个给你
  • 我将它们作为 from scipy.integrate import odeint 导入。
【解决方案2】:

要调用静态函数,您需要将类名放在方法之前,请查看以下完整示例:

def odeint(f, n):
  return f(n)

class A:

  @staticmethod
  def mathfunc(a):
      return a+1

  def numericalsim(self, n):
      y = odeint(A.mathfunc, n)
      return y

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-26
    • 2016-05-08
    • 2019-02-04
    • 1970-01-01
    • 2021-11-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多