我从前开始学习Python并加入了SO,现在这是我第一次尝试上课。我遇到了一个问题,我无法解决更长的时间并得到错误消息:
AttributeError:“ TrainType”对象没有属性“ v”
代码如下:
import math
class TrainType(object):
def __init__(self,t,M,n,L,S,pas):
self.t = t # train model
self.M = M # train mass [t]
self.n = n # numer of axles [-]
self.L = L # train length [m]
self.S = S # crossection area [m2]
self.pas = pas # passenger capacity [-]
# Running resistance force formula
def run_res(self,v):
C = 0.0035*self.S+0.041*self.L/100+0.002;
R_L = 9.81*(1.3*math.sqrt(10*self.n/self.M)+0.01*self.v)*self.M+C*v**2
return R_L
# Power required formula
def power(self,v):
a = self.run_res(v)
P = a*v
return P
train1 = TrainType("Talgo 350",323,21,200,10,318)
print(train1.run_res(10)) # for test reasons v = 10
print(train1.power(10))
v 是一个外部变量,它是class TrainType
方法中的一个参数。
我已经搜索了SO,发现很少有解决方案与全局变量相关的线程,因此我尝试通过global v
或globals()['v']
来解决它,但无济于事:
SyntaxError:名称“ v”是参数和全局值。
谢谢!