1
print >>sys.stderr, 'waiting for a connection'

谁能解释一下“>>”运算符在这种情况下的作用?

4

1 回答 1

5

它从文档打印到类似文件的对象:

print还具有扩展形式,由上述语法的第二部分定义。这种形式有时被称为“打印人字形”。在这种形式中,后面的第一个表达式>>必须计算为“类文件”对象,特别是具有上述write()方法的对象。使用此扩展形式,后续表达式将打印到此文件对象。如果第一个表达式的计算结果为None,则将sys.stdout其用作输出文件。

与此相反,它的优点sys.stderr.write()print >>f, ...自动在文本末尾附加换行符(手动添加换行符,即sys.stderr.write('waiting for a connection\n')变得烦人)。

作为参考,等效的 Python 3 代码是:

print('waiting for a connection', file=sys.stderr)
于 2013-04-27T04:37:58.450 回答