我的课程和课程一起操作有问题

时间:2015-12-10 00:38:03

标签: python python-3.x

追踪(最近一次通话):   文件“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()

2 个答案:

答案 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