繁体   English   中英

即使有return语句,我的函数也始终返回None

[英]My function keeps returning None even though it has a return statement

我在一个类中有一个非常短的函数,该函数始终返回None ,即使我将以前的print语句变成了return语句,这也是我所拥有的:

def explain(self):
    return(print('Wear a', self.getColor(), 'shirt')

该语句将打印出来,但是每次在下一行上打印None时,请让我知道如何阻止这种情况的发生!

这是因为print的输出打印在终端上,并且print功能本身的值是None ,这是返回的值。

如果您希望返回值并打印它,则可以执行以下操作:

def explain(self):
    string = 'Wear a' + self.getColor() + 'shirt'
    print(string)
    return string

如果只需要返回该值,则只需删除上面的print语句,即可稍后打印。

return语句不是函数。 它是一个控制流构造(如if-else )。 它使您“在函数调用之间随身携带数据”。 因此,您不能返回print ,因为它不是函数,而是保留字。 但是由于print是一条语句,因此您可以在终端上看到它的输出,但是由于该函数未返回任何内容,因此也None输出。 如果要返回字符串,请执行以下操作:

return 'Wear a ' + self.getColor() + ' shirt'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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