追踪(最近一次通话): 文件“H:\ Documents \ itp100-softwaredesign \ Assinginments \ Project2 \ run_car.py”,第36行,in 主要() 文件“H:\ Documents \ itp100-softwaredesign \ Assinginments \ Project2 \ run_car.py”,第23行,主要 my_car.accelerate() 文件“H:\ Documents \ itp100-softwaredesign \ Assinginments \ Project2 \ car.py”,第28行,加速 速度+5 TypeError:+:'Car'和'int'
的不支持的操作数类型这是我得到的错误。 这是我的代码和我的班级。 我需要用加速方法将速度加5加速5次 然后用制动方法从速度-5。 任何建议都会有所帮助。谢谢
class Car:
def __init__(self, year, make, speed):
self.__year_model = year
self.__make = make
self.__speed = speed
def __set_year(self, year):
self.__year_model = year
def __set_model(self, make):
self.__make = make
def __set_speed(self, speed):
self.__speed
def __get_year(year):
return self.__year_model
def __get_model(model):
return self.__make
def __get_speed(accelerate):
return self.__speed
#methods
def accelerate(speed):
return (speed + 5)
def brake(speed):
return (speed - 5)
import car
import time
def main():
#Get the model of the car.
year = input('Enter the year of the car: ')
#Get the year of the car.
make = input('Enter the model of the vehicle: ')
speed = 0
print('Okay we are not moving so your current speed is 0')
#Create a car object.
my_car = car.Car(year, make, 0)
for count in range(5):
print('Give it some gas!!!')
time.sleep(2)
my_car.accelerate()
print('Your current speed is: ',my_car.get_speed())
for count in range(5):
print('Whoa whoa whoa slow dowwn!!!')
time.sleep(2)
my_car.brake()
print('Your current speed is:', my_car.get_speed())
print('Your', make, 'runs pretty good.')
main()
答案 0 :(得分:2)
您错过了班级中的self
参数'功能。它应该是:
def accelerate(self, speed):
请记住在调用它时传递speed
参数!
答案 1 :(得分:2)
您的代码存在许多问题。首先,所有类方法都应以self
作为第一个参数。其次,您定义了一些返回值但却没有使用这些值的类方法(如accelerate
)。也许在这种情况下你真的想要修改方法中的速度。 E.g:
def accelerate(self):
self.__speed += 5
我还注意到您正在调用my_car.get_speed()
,但您尚未使用该名称定义任何方法(仅__get_speed
)。您可能不希望使用双下划线命名方法。请查看PEP8中指定的repo。