对“print>> ...”语法的解释

时间:2013-04-27 04:35:26

标签: python python-2.x

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

任何人都可以解释一下“>>”在这种情况下运营商呢?

1 个答案:

答案 0 :(得分:5)

它从docs

打印到类似文件的对象
  

print也有一个扩展形式,由上述语法的第二部分定义。此表单有时称为“print chevron”。在此表单中,>>之后的第一个表达式必须求值为“类文件”对象,特别是具有write()方法的对象如上所述。使用此扩展表单,后续表达式将打印到此文件对象。如果第一个表达式的计算结果为None,那么sys.stdout将用作输出文件。

sys.stderr.write()相比,print >>f, ...的优势在于sys.stderr.write('waiting for a connection\n')会自动在文字的末尾附加换行符(手动添加换行符,即。print('waiting for a connection', file=sys.stderr) 会令人烦恼)。

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

{{1}}