繁体   English   中英

为什么我的函数即使有返回语句,每次调用时都返回None

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM