需要修复一些Python错误吗

需要修复一些Python错误吗,python,Python,好的,我几乎解决了这个问题,但仍然需要一些帮助。我只需要程序显示一个错误消息时,速度低于0后制动,然后重置为0。谢谢你的帮助 class Car: def __init__(self, year_model, make): self.__year_model = year_model self.__make = make self.__speed = 0 ############# year_model################

好的,我几乎解决了这个问题,但仍然需要一些帮助。我只需要程序显示一个错误消息时,速度低于0后制动,然后重置为0。谢谢你的帮助

class Car:
    def __init__(self, year_model, make):
        self.__year_model = year_model
        self.__make = make
        self.__speed = 0

############# year_model################
    def setYear_model(self, year_model):
        self.__year_model = year_model

    def getYear_model(self):
        return self.__year_model

############# Make################
    def setMake(self, make):
        self.__make = make

    def getMake(self):
        return self.make

############# speed################
    def setSpeed(self, speed):
        if speed < 0:
            print("Speed cannot be negative")
        else:
            self.__speed = speed

    def getSpeed(self):
        return self.__speed

    def accelerate(self, speed):
        self.__speed += 5
        return self.__speed

    def brake(self):
        self.__speed -= 5
        return self.__speed

############# str ############
    def __str__(self):
        return "Make : " + self.__make + ", Model Year :" + \
        self.__year_model + ", speed = " + str(self.__speed)

\uuuu init\uuuu
方法中,以及在其他一些地方,您可以参考
self.\uu speed
。但是,在您的
加速
制动
方法中,您指的是
自身速度
,这是不同的。使所有参考都相同,您的问题就应该得到解决。

除了Rory的答案之外,在您的主代码中,您实际上从未调用过
加速
制动
方法。您总是需要使用调用括号
()
来调用函数或方法,而不仅仅是引用它

但是,如果这样做,您将遇到另一个问题,即这些方法已定义为接受一个参数,
speed
,您需要传递该参数。但事实上,这些方法不使用这些参数,所以应该从定义中删除它们。因此:

def accelerate(self):
    self.__speed += 5
    return self.speed

def brake(self):
    self.__speed -= 5
    return self.speed

...

for i in range(5):
    my_car.accelerate()

...

for i in range(5):
    my_car.brake()

我只是试了一下,不幸的是没有成功。我按照你的建议做了,现在它显示“第21行,在我的车里,有一个错误。刹车()类型错误刹车()缺少1个必需的位置参数:“速度”,然后你没有按照我的建议做,因为我说要去掉该参数。好的,我让它工作了,但我还需要它在制动后速度小于0时显示一条错误消息,然后将其重置为0。谢谢你的帮助。在我看来,你有一些下划线被用来表示速度tentlyAllan,将问题的主题改为“中途”不是一个好主意。两个人花时间浏览和分析你的代码,本质上,指出“打字错误”。如果你将问题改为需要错误消息,这些答案将毫无意义(更不用说这个问题即将结束的事实了)。你应该针对一个新的主题/要求开始一个新问题。我的问题因为太宽泛而被“搁置”,所以我想我应该改变它。我收到一个通知,说我的问题被“搁置”“因为太宽泛了,所以我认为最好改变这个问题。而且,它不会让我再问一个问题,因为昨天问了这个问题。
def accelerate(self):
    self.__speed += 5
    return self.speed

def brake(self):
    self.__speed -= 5
    return self.speed

...

for i in range(5):
    my_car.accelerate()

...

for i in range(5):
    my_car.brake()