属性错误:“ TrainType”对象没有属性“ v”;属性应具有对类的外部访问权限

时间:2018-12-10 23:59:57

标签: python python-3.x

我从前开始学习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 vglobals()['v']来解决它,但无济于事:

  

SyntaxError:名称“ v”是参数和全局值。

谢谢!

0 个答案:

没有答案