>> print(type(a)) 为什么 a 在这里变成了 N-6ren">
gpt4 book ai didi

python - 为什么 print 函数返回 None?

转载 作者:太空宇宙 更新时间:2023-11-03 10:47:13 28 4
gpt4 key购买 nike

为什么这段代码外面的print显示None

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

为什么 a 在这里变成了 None,即使打印了 hey(而不是 None)?

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

另请参阅:What is the purpose of the return statement? How is it different from printing?

最佳答案

print() 函数返回None。您正在打印该返回值。

那是因为 print() 没有返回的东西;它的工作是将参数转换为字符串后写入文件对象(默认为 sys.stdout)。但是 Python 中的所有表达式(包括调用)都会产生一个值,因此在这种情况下会产生 None

您似乎混淆了打印和返回这里。 Python 交互式解释器 打印;它打印直接在提示符下运行的表达式的结果,前提是它们不产生 None:

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

字符串被回显(打印)到您的终端,而 None 则没有。

由于 print() 返回 None 但写入相同的输出(您的终端),结果可能看起来相同,但它们是非常不同的 Action 。我可以让 print() 写入其他东西,你不会在终端上看到任何东西:

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

print() 函数调用没有在终端上产生输出,并返回了 None,随后没有回显。

关于python - 为什么 print 函数返回 None?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27959258/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com