来自互动提示:
>>> import sys
>>> sys.stdout.write('is the')
is the6
那里的'6'在做什么?
另一个例子:
>>> for i in range(3):
... sys.stderr.write('new black')
...
9
9
9
new blacknew blacknew black
这些数字来自哪里?
答案 0 :(得分:2)
在3.x中,文件对象的write
方法返回写入的字节数,交互式提示符会打印出正在运行的任何内容的返回值。因此,您打印出'is the'
(6个字节),然后解释器打印出6(写入的返回)。 3.1 See the relevant docs。
这不会发生在3.0之前,因为write方法返回None
,因此没有打印任何内容。
答案 1 :(得分:0)
它们是来自write的返回值,由交互式shell打印。
试试
>>> 3
会发生什么?
答案 2 :(得分:0)
这在Python3上发生,但不在Python2上发生。
Mike认为Python3中的写入返回了写入的字节数,然后由交互式shell打印。
Python2中的写入返回None,因此没有打印