我已經定義使用Python如下功能:爲什麼這個函數返回這個值?
def output():
print "Hello, world!"
output()
當這個腳本在Windows命令行中運行,則回覆:
Hello, world!
我想說明的是:這是爲什麼?儘管沒有定義返回值,爲什麼還是輸出值?
我已經定義使用Python如下功能:爲什麼這個函數返回這個值?
def output():
print "Hello, world!"
output()
當這個腳本在Windows命令行中運行,則回覆:
Hello, world!
我想說明的是:這是爲什麼?儘管沒有定義返回值,爲什麼還是輸出值?
該方法的默認返回值爲None
。如果您執行以下操作:
res = output()
,並打印出res
,這將是None
。默認情況下,如果未指定返回,則始終返回None
。
>>> def output():
... print "Hello, world!"
...
>>> res = output()
Hello, world!
>>> res
>>> type(res)
<type 'NoneType'>
但是,你仍然會得到的東西打印到屏幕上,因爲當該方法被稱爲print
語句將運行。
返回值只有在思考程序如何工作的情況下才有意義。對於最終用戶來說,他們可能對返回值一無所知。
一個單獨的概念,輸出,是用戶通常看到的。在這種情況下,程序使用打印語句,輸出到名爲stdout
的輸出流。該輸出流通常由程序從中運行的控制檯讀取,然後輸出到控制檯。
該函數的實際返回值是None
,但它永遠不會輸出給用戶。
因爲你正在調用一個帶有'print'的方法。 'print'將會*打印*到屏幕上。 – idjaw
字符串「Hello,world!」沒有被返回,但是打印到標準輸出。 –
方法的默認返回值是'None'。如果你做'res = output()'並打印出'res',它將是'無'。但是你仍然會得到一些打印出來的東西,因爲在調用方法時'print'語句會運行。 – idjaw