我正在用Python学习课程,这是我编写的代码
class Time:
def __init__(self, hour, minute):
self.hour=hour
self.minute=minute
def displayTime(self):
return f"{self.hour} hours and {self.minute} minutes"
def addTime(self, s):
temp = Time(0,0)
temp.minute = self.minute + s.minute
temp.hour = self.hour + s.hour
if temp.minute>=60:
temp.hour+=1
temp.minute-=60
temp.displayTime()
if __name__=='__main__':
t1= Time(12,50)
t2 = Time(11,36)
print(t1.displayTime())
print(t2.displayTime())
print(t1.addTime(t2))
但是,当我运行它时,最后一个打印语句将打印None
。但是,如果我将return
中的displayTime
更改为print
,它将正确打印时间。
我做错了什么?
答案 0 :(得分:4)
{{1}}
答案 1 :(得分:1)
发布答案后,我便得到答案。为了将来供他人参考,我将答案发布在这里。
在函数addTime
中,我调用了函数displayTime
def addTime(self, s):
...
temp.displayTime()
函数displayTime将值返回给函数addTime
,而addTime
不返回任何值。因此,它将打印None
。
要纠正它,我只需要返回displayTime
def addTime(self, s):
...
return temp.displayTime()