用Python创建一个类

时间:2014-12-17 20:23:57

标签: python class

我正在为学校工作。我们要创建一个"类"我一直得到一个属性错误,但我无法弄清楚我错了可以有人请求帮助。方向如下。我还包括了我编写的代码,希望有人可以帮助我。

  

编写一个名为Car的类,它具有以下数据属性:

     
      
  • __year_model(适用于汽车的年份型号)
  •   
  • __make(汽车制造的汽车)
  •   
  • __speed(对于汽车当前的速度)
  •   
     

Car类应该有一个接受汽车的__init__方法   年模型并作为参数。它还应该为0指定   __speed数据属性。

     

该课程还应具备以下方法:

     
      
  • 加速:accelerate方法应该为速度数据添加5   每次调用时属性。
  •   
  • 制动:brake方法应从速度数据中减去5   每次调用时属性。
  •   
  • get_speed方法应返回当前速度
  •   
     

接下来,设计一个创建汽车对象的程序,然后调用   加速方法五次。每次调用加速后   方法,获取汽车的当前速度并显示它。然后打电话给   制动方法五次。每次调用制动方法后,得到   当前的速度和显示它。

class Car:
    def __init__(self, year_model, make, speed):
        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, speed):
        self.speed -= 5
        return self.speed 

    ############# str ############
    def __str__(self):
        return "Make : " + self.make + ", Model Year :" + \
            self.year_model + ", speed =" + str(self.speed)

我的实际计划

import CarDefinition

def main():
    my_car = CarDefinition.Car("2008", "Honda Accord")

    print(my_car)

    # Accelerate 5 times
    print ("Car is Accelerating: ")
    for i in range(5):
        my_car.accelerate()
        print ("Current speed: ", my_car.getSpeed())

    print()
    # Break 7 times
    print ("Car is braking: ")
    for i in range(7):
        my_car.brake()
        print ("Current speed: ", my_car.getSpeed())

    print("my_car values at prgram end:\n", my_car)





main()    

2 个答案:

答案 0 :(得分:1)

尝试这样的事情

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

答案 1 :(得分:0)

你得到了哪些错误?

对于初学者,您是否正确创建了对象?

检查代码的这一行:my_car =("2008", "Honda Accord")

不应该是my_car = Car("2008", "Honda Accord")吗?