[英]Why does my function return None everytime it is called even though it has a return statement
我正在用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
。 但是,如果将displayTime
return
更改为print
,它将正确打印时间。
我做错了什么?
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
return temp.displayTime() # <- this is the issue.
我一发布便得到答案。 为了将来供他人参考,我在这里发布答案。
在addTime
函数中,我将其称为displayTime
函数
def addTime(self, s):
...
temp.displayTime()
函数displayTime将值返回给函数addTime
,而addTime
不返回任何值。 因此,它打印None
。
要纠正它,我只需要返回displayTime
def addTime(self, s):
...
return temp.displayTime()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.