为什么打印函数返回 None ?
- 2024-12-13 08:36:00
- admin 原创
- 132
问题描述:
print
为什么这段代码中的outer会显示None
?
>>> a = print(print("Python"))
Python
None
>>> print(type(a))
<class 'NoneType'>
为什么这里是a
become None
,尽管hey
是打印的(而不是None
)?
>>> a = print("hey")
hey
>>> type(a)
<class 'NoneType'>
另请参阅:return 语句的用途是什么?它与打印有何不同?
解决方案 1:
函数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!
'
该print()
函数调用未在终端上产生输出,并且返回了None
未被回显的内容。
相关推荐
热门文章
项目管理软件有哪些?
热门标签
云禅道AD