[英]Why does my function return None everytime it is called even though it has a return statement
[英]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.