【发布时间】:2013-10-15 19:29:22
【问题描述】:
我对 python 完全陌生。现在我正在使用 Enthought 机盖(python 2.7.3)。 我知道这个问题已经被问过一百万次了,我可以想象你们都厌倦了这个问题,但它一直困扰着我一整天。
import Basismodel
def doAll(c):
#from Basismodel import calcKappa
Basismodel.setC(c)
Basismodel.setMu()
Basismodel.setLambda()
Basismodel.calcKappa()
Basismodel.calcSumofprob()
Basismodel.calcPi()
doAll(100)
使用另一个文件 Basismodel.py,其中定义了此处提到的所有功能。 前 3 个不会出错,但后 3 个会出错。
作为额外信息,我还将为您提供 Basismodel.py 的代码
global c
global lamb
global pi
global kappa
global mu
global sumofkappa
global f
f=0.6 #the percentage that takes the car
c=100 #max
sumofkappa=0 #sum of all kappa
sumofpi=0 #sum of all probabilities (should be equal to 1)
pi=[]
kappa=[1.0]
mu=[0.4]
lamb=[0.1] #Lambda is de arrival rate
def setC(y):
c=y
#print c
def setMu():
global mu
for i in range (c):
mu.append((i+2)*mu[0])
#print mu[i]
def setLambda():
for i in range (c):
lamb.append(lamb[1])
#print lamb[i]
def calcKappa():
for i in range (c):
if (i==0):
kappa[0]=1.0
else:
kappa[i].append(kappa[i-1]*lamb[i-1]/mu[i])
def calcSumofprob():
for i in range (c):
global sumofkappa
sumofkappa += kappa[i]
def calcPi():
for i in range (c):
pi.append(kappa[i]/sumofkappa)
def calcAveragePi():
for i in range(c):
global sumofpi
sumofpi += pi[i]
return sumofpi/c
当我执行 main 时,它给出了这个错误,它没有任何意义,因为所有打印行都是 #comment 样式。 但是,我对为什么找不到该属性更感兴趣。此外,当我在 def doAll 之后设置“#from .Basismodel import calcKappa”时,错误会变为无法导入的 importerror。
%run "C:/Users/Thomas/Dropbox/Thesis/Canopy files/Main.py"
100
0.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
8.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
8.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
8.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
8.4
0.8
1.2
1.6
2.0
2.4
2.8
3.2
3.6
4.0
4.4
4.8
5.2
5.6
6.0
6.4
6.8
7.2
7.6
8.0
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
C:\Users\Thomas\AppData\Local\Enthought\Canopy\App\appdata\canopy-1.1.0.1371.win-x86_64\lib\site-packages\IPython\utils\py3compat.pyc in execfile(fname, glob, loc)
174 else:
175 filename = fname
--> 176 exec compile(scripttext, filename, 'exec') in glob, loc
177 else:
178 def execfile(fname, *where):
C:\Users\Thomas\Dropbox\Thesis\Canopy files\Main.py in <module>()
17 return Basismodel.calcAveragePi()
18
---> 19 doAll(100)
20
21 #while(condition==0):
C:\Users\Thomas\Dropbox\Thesis\Canopy files\Main.py in doAll(c)
12 Basismodel.setMu()
13 Basismodel.setLambda()
---> 14 Basismodel.calcKappa()
15 Basismodel.calcSumofprob()
16 Basismodel.calcPi()
AttributeError: 'module' object has no attribute 'calcKappa'
有人可以帮忙吗?
【问题讨论】:
-
尽量做一个最简单的例子,即一个只包含
import basismodel; basismodel.calc_kappa()的main.py和一个只包含def calc_kappa(): pass的basismodel.py。这对你有用吗?
标签: python