python - 如何创建可导入模块?
问题描述
我正在关注本教程,在创建类之后,我仍然无法import
获得所需的模块。我使用的代码:
import numpy as np
import sys
class ForwardEuler:
def __init__(self, f):
# test that f is a function
if not callable(f):
raise TypeError('f is %s, not a function' % type(f))
self.f = f
def set_initial_condition(self, U0):
self.U0 = float(U0)
def solve(self, time_points):
"""Compute u for t values in time_points list."""
self.t = np.asarray(time_points)
self.u = np.zeros(len(time_points))
self.u[0] = self.U0
for k in range(len(self.t)-1):
self.k = k
self.u[k+1] = self.advance()
return self.u, self.t
def advance(self):
"""Advance the solution one time step."""
u, f, k, t = self.u, self.f, self.k, self.t
dt = t[k+1] - t[k]
unew = u[k] + dt*f(u[k], t[k])
return unew
class ODESolver:
def __init__(self, f):
self.f = f
def advance(self):
"""Advance solution one time step."""
raise NotImplementedError # implement in subclass
def set_initial_condition(self, U0):
self.U0 = float(U0)
def solve(self, time_points):
self.t = np.asarray(time_points)
self.u = np.zeros(len(self.t))
# Assume that self.t[0] corresponds to self.U0
self.u[0] = self.U0
# Time loop
for k in range(n-1):
self.k = k
self.u[k+1] = self.advance()
return self.u, self.t
def advance(self):
raise NotImplemtedError # to be impl. in subclasses
class ForwardEuler(ODESolver):
def advance(self):
u, f, k, t = self.u, self.f, self.k, self.t
dt = t[k+1] - t[k]
unew = u[k] + dt*f(u[k], t)
return unew
现在,我想要from ODESolver import ForwardEuler
,但没有名为ODESolver
. 我如何创建它?我想肯定有一些东西,if __name__ == '__main__':
然后是下面的类,但这也不起作用。
解决方案
您正在编写此代码的 file.py 的名称是模块的名称,您必须将其命名为 ODESolver 然后您可以执行
from ODESolver import ForwardEuler
推荐阅读
- javascript - Expo - 在 Android 8.1.0 上重新安装 App 后访问 Keystore 时出错
- cassandra - 在整个集群上运行 nodetool repair 的最佳实践
- python - sklearn中的Kfold交叉验证每次都会给出不同的折叠
- c - 括号是否强制(当前)C 中的评估顺序?
- javascript - 遍历规范化数据的最佳方法是什么?
- android - Android 应用程序中的 Google Product Sans 字体,可以使用吗?
- javascript - 如何将滑块的值与 angularjs 变量匹配?
- alexa - Alexa 话语 - 可变长度
- java - Flink Scala - 比较方法违反了它的一般合同
- c# - C# 应用程序未在单台 PC 中启动