以交互方式启动python
时,它将评估[]
之类的表达式,并打印转换为字符串的结果或执行i = 1
之类的语句。由于语句没有值,如果它们没有向终端写入任何内容,则不会打印任何内容。但是,当我输入None
作为表达式时,Python不打印任何内容,甚至不打'None'
。乍一看,我以为repr(None)
会返回一个空字符串,但我错了。那么为什么Python通过什么都不打印来为None
创建一个特例呢?
>>> None
>>>
>>> repr(None)
'None'
>>> str(None)
'None'
答案 0 :(得分:2)
在交互模式下,如果不是None
,则任何表达式语句的结果仅打印 。 doc。
使用表达式语句(主要是交互式)来计算和写入值[...]
在交互模式下,如果值不是
None
,则转换为a 使用内置repr()
函数的字符串,结果字符串是 写入标准输出
原因是大多数具有副作用的函数返回None
。在控制台中发送None
垃圾邮件会很烦人。
>>> lst.append(1)
None
>>> lst.append(2)
None
>>> lst.append(3)
None
>>> print('Please stop...')
Please stop...
None
答案 1 :(得分:1)
因为否则所有没有返回任何内容的函数调用都会打印None
。