我不明白哪里出了问题。下面是我的代码:
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次时显示速度,但它没有显示任何速度。我已经在这段代码上工作了一段时间了,但是没有取得任何进展。
发布于 2016-08-17 05:28:14
当你在python解释器中输入car1.get_speed()
时,你会得到正确的返回值,但是当你运行一个程序时,你需要像这样显式地打印它,例如:
print('The current speeed is:'+str(car1.get_speed()))
(否则,如果忽略返回代码,所有返回None
以外的内容的方法都会一直在控制台中打印大量无意义的内容)
发布于 2016-08-17 05:32:16
以下是您的代码的工作示例:
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,这是一种反模式。
https://stackoverflow.com/questions/38984679
复制相似问题