汽车类程序不显示更新的速度

2024-10-03 00:26:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白怎么了。这是我的密码:

class CarClass(object):
    def __init__(self,year_model,make):
        self.__year_model=year_model
        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

#create car1 object
car1=CarClass(2013,'TATA')
#updates speed of car
car1.accelerate()
print('The current speeed is:')
car1.get_speed()
car1.accelerate()

car1.accelerate()
print('The current speeed is:')
car1.get_speed()
car1.accelerate()

car1.accelerate()
print('The current speeed is:')
car1.get_speed()
car1.accelerate()

car1.accelerate()
print('The current speeed is:')
car1.get_speed()
car1.accelerate()

下面是我的代码输出:

The current speeed is:
The current speeed is:
The current speeed is:
The current speeed is:
The current speeed is:
The current speeed is:

它应该显示速度每增加5倍,但它不显示任何速度。我已经在这个代码上工作了一段时间了,但是没有任何进展


Tags: theselfgetmakemodelisdefcurrent
2条回答

在python解释器中键入car1.get_speed()时,返回的值是正确的,但在运行程序时,需要显式打印它,例如:

print('The current speeed is:'+str(car1.get_sp‌​eed()))

(否则,如果忽略返回代码,那么所有返回None以外的内容的方法都会在控制台中打印大量的废话)

下面是代码的工作示例:

class CarClass(object):

    def __init__(self, year_model, make):
        self.__year_model = year_model
        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


# create car1 object
car1 = CarClass(2013, 'TATA')

# updates speed of car
for i in range(4):
    car1.accelerate()
    print('The current speeed is: {0}'.format(car1.get_speed()))
    car1.accelerate()

如你所见,现在它正在打印加速后的车速,你忘记打印了。另外,尽量避免copy & paste的代码块,这是一种反模式

相关问题 更多 >