汽车级Python程序

汽车级Python程序,python,python-3.6,Python,Python 3.6,这是我的密码。我不断地得到一个名称错误作为我的结果。我应该如何解决这个问题 汽车等级 节目 您的代码有几个问题: 您尚未创建实例:mycar=Caryear、make、speed 你把我的车改名为我的车 该类属性称为self.\u speed,而不是self.speed.accelerate、brake和get\u speed方法 此代码应适用于您: def makeCarClass(): def initialize(self, model, color, currSpeed, max

这是我的密码。我不断地得到一个名称错误作为我的结果。我应该如何解决这个问题

汽车等级

节目


您的代码有几个问题:

您尚未创建实例:mycar=Caryear、make、speed

你把我的车改名为我的车

该类属性称为self.\u speed,而不是self.speed.accelerate、brake和get\u speed方法


此代码应适用于您:

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)
等级车:

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主: 我的车=汽车。汽车2019,丰田

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

为什么使用前导双下划线?我不知道。下划线就是这样显示的。你能解释一下你提供的答案吗?你创建这个类的第一部分代码。然后,您需要启动一个新的python文件并导入您的文件。我的档案叫做汽车。然后使用for循环调用speed和break,每次调用5次。希望有帮助
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)
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
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())