首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Car类Python程序

Car类Python程序
EN

Stack Overflow用户
提问于 2017-04-01 00:28:29
回答 3查看 37.3K关注 0票数 0

这是我的密码。我一直得到一个名字错误作为我的结果。我该如何解决这个问题?

轿车级

代码语言:javascript
复制
class Car:
    def __init__(self, year, make, speed):
        self.__year_model = year
        self.__make = make
        self.__speed = 0

    def set_year_model(self, year):
        self.__year_model = year

    def set_make(self, make):
        self.__make = make

    def set_speed(self, speed):
        self.__speed = 0

    def get_year_model(self):
        return self.__year_model

    def get_make(self):
        return self.__make

    def get_speed(self):
        return self.__speed

    #methods
    def accelerate(self):
        self.speed +=5

    def brake(self):
        self.speed -=5

    def get_speed(self):
        return self.speed

程序

代码语言:javascript
复制
import Lab9_prob2

def main():

    year = input('Enter the car year: ')
    make = input('Enter the car make: ')
    speed = 0

    #Accelerate 5 times
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed())
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed())
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed())
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed())
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed()) 

    #Brake 5 times
    mycar.brake()
    print('The current speed after brake is: ', mycar.get_speed())
    my_car.brake()
    print('The current speed after brake is: ', mycar.get_speed())
    my_car.brake()
    print('The current speed after brake is: ', mycar.get_speed())
    my_car.brake() 
    print('The current speed after brake is: ', mycar.get_speed())
    my_car.brake()
    print('The current speed after brake is: ', mycar.get_speed())

#Call the main function
main()
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2017-04-01 00:37:49

您的代码有几个问题:

  • 您尚未创建实例:mycar = Car(year, make, speed)
  • 您已将mycar重命名为my_car:ie my_car.brake()
  • 类属性称为self.__speed,它不称为self.speed。(加速、制动和get_speed方法)
代码语言:javascript
复制
class Car:
    def __init__(self, year, make, speed):
        self.__year_model = year
        self.__make = make
        self.__speed = 0

    def set_year_model(self, year):
        self.__year_model = year

    def set_make(self, make):
        self.__make = make

    def set_speed(self, speed):
        self.__speed = 0

    def get_year_model(self):
        return self.__year_model

    def get_make(self):
        return self.__make

    def get_speed(self):
        return self.__speed

    #methods
    def accelerate(self):
        self.__speed +=5

    def brake(self):
        self.__speed -=5

    def get_speed(self):
        return self.__speed

def main():

    year = input('Enter the car year: ')
    make = input('Enter the car make: ')
    speed = 0

    mycar = Car(year, make, speed)

    #Accelerate 5 times
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed())
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed())
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed())
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed())
    mycar.accelerate()
    print('The current speed is: ', mycar.get_speed()) 

    #Brake 5 times
    mycar.brake()
    print('The current speed after brake is: ', mycar.get_speed())
    mycar.brake()
    print('The current speed after brake is: ', mycar.get_speed())
    mycar.brake()
    print('The current speed after brake is: ', mycar.get_speed())
    mycar.brake() 
    print('The current speed after brake is: ', mycar.get_speed())
    mycar.brake()
    print('The current speed after brake is: ', mycar.get_speed())

#Call the main function
main()
票数 2
EN

Stack Overflow用户

发布于 2018-04-14 19:53:36

此代码应该适用于您:

代码语言:javascript
复制
def makeCarClass():
    def initialize(self, model, color, currSpeed, maxSpeed, mpg, currFuel, mileage):
        self["model"] = model 
        self["color"] = color
        self["currSpeed"] = currSpeed
        self["maxSpeed"] = maxSpeed
        self["mpg"] = mpg 
        self["currFuel"] = currFuel
        self["mileage"] = mileage
        return self

    def changeSpeed(self, amount):
        newSpeed = self["currSpeed"] + amount
        if newSpeed >= self["maxSpeed"]:
            self["currSpeed"] = self["maxSpeed"]
        elif newSpeed <=0:
            self["currSpeed"] = 0
        else:
            self["currSpeed"] = newSpeed

    def move(self, miles):
        fuelNeeded = miles/self["mpg"]
        currFuel = self["currFuel"]
        if currFuel <= fuelNeeded:
            self["currFuel"] = 0
            self["mileage"] = self["mileage"] + currFuel * self["mpg"]
            print("Warning: Your car has run out of fuel")

        else:
            self["currFuel"] = currFuel - fuelNeeded
            self["mileage"] = self["mileage"] + miles

    return {"initialize":initialize, "changeSpeed":changeSpeed, "move":move}


carClass = makeCarClass()

car1 = carClass["initialize"]({},"Ferrari", "yellow", 0, 200, 10, 40, 0)
car2 = carClass["initialize"]({},"Honda", "black", 0, 120, 30, 40, 0)
print(car1)
票数 0
EN

Stack Overflow用户

发布于 2020-03-28 17:46:53

级车:

代码语言:javascript
复制
def __init__(self,year,make):
    self.__year_model=year
    self.__make=make
    self.__speed=0

def accelerate(self):
    self.__speed +=5

def brake(self):
    self.__speed -=5

def get_speed(self):
    return self.__speed

新文件

进口汽车

def ():my_car =car.Car(2019年,“丰田”)

代码语言:javascript
复制
for i in range(5):
    my_car.accelerate()
    print("Speed = ",my_car.get_speed())

for i in range(5):
    my_car.brake()
    print("Speed = ",my_car.get_speed())

main()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43151454

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档