这段代码是什么意思:“print >> sys.stderr”

30 投票
2 回答
23643 浏览
提问于 2025-04-15 17:31
print >> sys.stderr, "Error in atexit._run_exitfuncs:"

为什么在 sys.stderr 前面要打印 '>>' 呢?

谢谢。

2 个回答

6

来自Python文档的内容:

print函数还有一种扩展形式,这种形式在上面描述的语法的第二部分中定义。这个形式有时被称为“print chevron”。在这种形式中,紧跟在>>后面的第一个表达式必须是一个“类似文件”的对象,具体来说,就是一个有write()方法的对象。使用这种扩展形式后,后面的表达式会被打印到这个文件对象中。如果第一个表达式的结果是None,那么就会使用sys.stdout作为输出的文件。

41

这个语法的意思是将内容写入一个文件对象(在这个例子中是 sys.stderr),而不是写入标准输出。[链接]

在 Python 3.0 中,print 变成了一个函数,而不再是一个语句:[链接]

print("Error in atexit._run_exitfuncs:", file=sys.stderr)

撰写回答