我是Python新手,我从一个程序开始。我编写了几个捆绑在三个包中的函数。所有包都有一个BaseFunction,它扩展了三个包之外的另一个BaseFunction。在
例如,这个函数扩展了BaseScalingFunctionClass,而这个类扩展了BaseFunctionClass
排除包装:
from abc import ABCMeta, abstractmethod
import matplotlib.pyplot as plt
class BaseFunctionClass():
def __init__(self):
pass
@abstractmethod
def getValue(self, x: float) -> float:
pass
def plot(self, x):
y = []
for val in x:
y.append(self.getValue(val))
plt.plot(x, y)
plt.show()
包装内:
^{pr2}$以及
from BaseScalingFunction import BaseScalingFunctionClass
import numpy as np
class HaarScalingFunction(BaseScalingFunctionClass):
def __init__(self):
pass
def getValue(self, x: float) -> float:
if(-1/2 < x and x <= 1/2):
return 1.0
return 0.0
def plot(self):
x = np.arange(-2, 2, 0.01)
super().plot(x)
如果我尝试以下命令,一切正常
instance = HaarScalingFunction()
instance.plot()
instance = BaseScalingFunctionClass()
print(instance)
现在,我想写一个方法,它返回两个基函数的标量积。在
from numpy import trapz
from BaseFunction import BaseFunctionClass
from ScalingFunctions.HaarScalingFunction import HaarScalingFunction
class Calculation():
def __init__(self):
pass
def innerProduct(self, function1: BaseFunctionClass, function2: BaseFunctionClass) -> float:
return trapz(function1.getValue * function2.getValue)
HaarScalingFunction1 = HaarScalingFunction()
HaarScalingFunction2 = HaarScalingFunction()
calculation = Calculation()
print(calculation.innerProduct(HaarScalingFunction1, HaarScalingFunction2))
如果我尝试运行此命令,会出现以下异常:
Exception has occurred: ModuleNotFoundError No module named 'BaseScalingFunction'
File "C:\path", line 2, in module from BaseScalingFunction import BaseScalingFunctionClass
File "C:\path", line 3, in module from ScalingFunctions.HaarScalingFunction import HaarScalingFunction
我不明白,为什么在HaarScalingFunction中没有找到基于模块的scalingfunction,因为它以前是在我的测试中发现的?在
我很感激你的帮助
马提亚斯
编辑
我添加了一些插件,发现
from BaseScalingFunction import BaseScalingFunctionClass
在HaarScalingFunction中是一个未解析的导入。我把线路改成
from ScalingFunctions.BaseScalingFunction import BaseScalingFunctionClass
现在错误消失了。也就是说,我不太清楚进口商品是如何使用的。如果我在HaarScalingFunction.class当我从另一个班用这个班的时候就不会再这样了?在
我假设如果我启动这个文件,当前的工作目录就被设置为它,因此另一个文件被找到了,因为它在同一个子文件夹中。我在另一个文件中找不到第二个文件。有人能证实这一点吗?在
目前没有回答
相关问题 更多 >
编程相关推荐