运行nosetest时Python AttributeError
我有一个名为Model.py的文件,其中包含代码运行nosetest时Python AttributeError,python,Python,我有一个名为Model.py的文件,其中包含代码 class ModelCalibrator(): def __init__(self): self.file1 = 'Mortality_Population.txt' self.file2 = 'Deaths_1x1_adj.txt' self.MaxAge = 101 self.MinAge = 18 self.basisAges = np.array([
class ModelCalibrator():
def __init__(self):
self.file1 = 'Mortality_Population.txt'
self.file2 = 'Deaths_1x1_adj.txt'
self.MaxAge = 101
self.MinAge = 18
self.basisAges = np.array([18, 50, 100])[np.newaxis]
self.mortalityData = PopulationData()
self.deathRateData = DeathRateData()
(self.age, self.phis) = computeBasisFunctions(ModelCalibrator)
def computeBasisFunctions(mc):
MaxAge = mc.MaxAge
MinAge = mc.MinAge
age = np.arange(MinAge, MaxAge)[np.newaxis]
basisAges = mc.basisAges
#calculations
...
return (age, phis)
在一个单独的test.py文件中,我使用代码运行测试
def testMC():
data = ModelCalibrator()
Phi = data.phis()
assert_equal(Phi[0], 1)
这一直告诉我我有一个attributeerror:type对象“ModelCalibrator”没有属性“MaxAge”。有谁能告诉我哪里出错了吗?在这一行中,您传递的是类而不是对象。尝试用
self
替换modelcalirator
。该类只是对象的模板self
表示设置了所有属性的当前对象
(self.age, self.phis) = computeBasisFunctions(self)
或者,如果希望在没有对象的情况下访问这些变量,可以将MaxAge和MinAge设置为类变量,方法是将它们移到\uuuu init\uuuu
函数外部,但移到类内部,如图所示