gpt4 book ai didi

python - 不确定解决方案对于 python 类是否正确

转载 作者:行者123 更新时间:2023-12-01 03:41:16 26 4
gpt4 key购买 nike

这是问题;创建具有以下数据属性的汽车类

__year_model
__make
__speed

该类应该有一个接受汽车年份型号的 __init__ 方法并作为论证。该值应分配给对象 __year_model__make 属性。它应该将 0 分配给 __speed 数据属性

它还应该有以下方法:

加速:每次加速应将速度数据属性加5被调用。

刹车:此方法应将速度减去 5

get_speed:这应该显示当前速度

接下来,设计一个程序,创建一个Car对象,然后调用accelerate方法五次。每次调用加速方法后,获取汽车的当前速度并显示它。然后调用brake方法五次。每次调用刹车方法后,得到汽车当前的速度并显示。

class Car:
def __init__(self,year_model,make,speed):
self.year_mode = year_model
self.make = make
self.speed = 0

def accelerate(self,accelerate):
self.accelerate = accelerate
speed = 0
for x in range(5):
speed = speed + 5
print speed

def brake(self,brake):
self.brake = brake
speed = 0
for x in range(5):
brake = brake - 5
print brake

def get_speed(self):
return self.speed


test = Car(2006,'Honda',100)

我知道测试是实例。也是对象吗?谢谢

最佳答案

是的,test是一个对象,即类的实例一个对象。

你的类(class)需要一些工作。根据规范,speed 不应传递给 __init__()。删除它并在 __init__() 中将 self.__speed 初始化为 0

accelerate()brake() 不应该接受参数 - 每个方法应该将当前速度增加 5 倍,或者将速度降低 5 倍。因此这些方法不需要任何参数(self 除外)。

所以accelerate()应该是这样的:

def accelerate(self):
self.__speed += 5 # shorthand for self.speed = self.speed + 5

每次调用都会将速度提高 5 倍。请注意,使用 self 是为了使成员 __speed 递增,而不是某些临时局部变量。您可以对 brake() 执行相同的操作。

除此之外,添加您的作业指定的测试:调用 accelerate 5 次,每次调用后打印速度。对于 brake 方法也是如此。输出结果与您的预期相符吗?

这样测试:

car = Car(2006,'Honda')

for i in range(5):
car.accelerate()
print(car.get_speed())

for i in range(5):
car.brake()
print(car.get_speed())

哦,请根据规范命名您的成员:__speed,而不是speed 等。

关于python - 不确定解决方案对于 python 类是否正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39583721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com