需要修复一些Python错误吗
好的,我几乎解决了这个问题,但仍然需要一些帮助。我只需要程序显示一个错误消息时,速度低于0后制动,然后重置为0。谢谢你的帮助需要修复一些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################
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()