簡體   English   中英

為什么打印 function 返回無?

[英]Why does the print function return None?

我試圖理解為什么外部print返回None

>>> a = print(print("Python"))
Python
None
>>> print(type(a))
<class 'NoneType'>

我注意到:

>>> a = print("hey")
hey
>>> type(a)
<class 'NoneType'>

誰能解釋這里一般發生了什么? 謝謝!

print()函數返回None 您正在打印該返回值。

那是因為print()沒有什么返回的; 它的工作是在將參數轉換為字符串后將參數寫入文件對象(默認為sys.stdout )。 但是 Python 中的所有表達式(包括調用)都會產生一個值,因此在這種情況下None產生。

您似乎將打印與返回此處混淆了。 Python 交互式解釋器也會打印; 它打印直接在提示中運行的表達式的結果,前提是它們不產生None

>>> None
>>> 'some value'
'some value'

該字符串已回顯(打印)到您的終端,而None則沒有。

由於print()返回None但寫入相同的輸出(您的終端),因此結果可能看起來相同,但它們是非常不同的操作。 我可以讓print()寫入其他內容,而您將在終端上看不到任何內容:

>>> from io import StringIO
>>> output = StringIO()
>>> print('Hello world!', file=output)
>>> output.getvalue()
'Hello world!\n'

print()函數調用沒有在終端上產生輸出,並返回None然后沒有回顯。

函數print 來自C 語言,選擇“by design”使用“0”(零)表示腳本執行后成功。 此外,所有基於此概念的項目,如 linux、shell 和 python 語言都使用它來通知方法的“調用者”是否成功執行。

互聯網上最常見的錯誤是代碼 404 - 未找到。 RFC 2616

更多參考請點擊這里

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM