在Python中加倍大于号

时间:2015-03-24 01:49:59

标签: python

当我遇到这个时,我正在查看一些Python源代码:

print >> sys.stderr, __doc__

>>是什么意思?我以前从未见过这样的语法。

2 个答案:

答案 0 :(得分:9)

请参阅Python 2.7 docs

中的“print vvron”说明
  

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

特殊语法在Python 3中消失了,因为sys.stdout已从语句转换为函数。

答案 1 :(得分:2)

此语法特定于print语句。它不是输出到标准输出,而是将输出发送到以>>命名的文件,在这种情况下是标准错误。

在表达式中,这是右移运算符。