即使我已將以前的打印語句轉換爲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):) –