我有一个非常短的函数位于一个不断返回None
的类中,即使我已将之前的print语句转换为return语句,这里有我所拥有的:
def explain(self):
return(print('Wear a', self.getColor(), 'shirt')
该声明将打印出来,但每次在下一行打印None
时,请告诉我如何阻止这种情况发生!
答案 0 :(得分:3)
这是因为print
的输出打印在终端上,print
函数的值本身是None
,这是返回的内容。
如果您希望返回值并打印它,您可以执行以下操作:
def explain(self):
string = 'Wear a' + self.getColor() + 'shirt'
print(string)
return string
如果只需要返回值,只需删除上面的print语句,然后再打印即可。
答案 1 :(得分:0)
return
语句不是函数。它是一个控制流构造(如if-else
)。它可以让你“在函数调用之间随身携带数据”。所以,你不能返回print
,因为它不是一个函数,它是一个保留字。但是由于print
是一个语句,你会在终端上看到它的输出,但None
也是如此,因为函数没有返回任何内容。如果您想返回一个字符串,请执行以下操作:
return 'Wear a ' + self.getColor() + ' shirt'