即使我已将以前的打印语句转换为return语句,但我的函数中有一个非常短的函数,该函数始终返回None
,这里是我所拥有的:即使它有一个返回语句,我的函数仍然返回无
def explain(self):
return(print('Wear a', self.getColor(), 'shirt')
的语句将打印出来,但每次都在下一行打印None
,请让我知道我怎么能阻止这种情况发生!
即使我已将以前的打印语句转换为return语句,但我的函数中有一个非常短的函数,该函数始终返回None
,这里是我所拥有的:即使它有一个返回语句,我的函数仍然返回无
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
如果只返回需要的值时,只要将打印语句在上面,你可以打印它后来。
return
声明不是函数。它是一个控制流构造(如if-else
)。这就是让你“在函数调用之间与你一起获取数据”的原因。所以,你不能返回print
,因为它不是一个函数,它是一个保留字。但是因为print
是一个声明,所以您会看到它在终端上输出,但也是None
,因为该函数没有返回任何内容。如果你想返回一个字符串,请这样做:
return 'Wear a ' + self.getColor() + ' shirt'
嘿!如果您的查询已解决,请不要忘记[接受其中一个答案](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work):) –