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

この場合に ">>" 演算子が何をするか説明できる人はいますか?

4

1 に答える 1

5

docsから、ファイルのようなオブジェクトに出力します。

printには、上記の構文の 2 番目の部分で定義された拡張形式もあります。このフォームは、「プリント シェブロン」と呼ばれることもあります。この形式では、must の後の最初の式は、「ファイルのような」オブジェクト、具体的には上記>>のメソッドを持つオブジェクトに評価されます。write()この拡張形式では、後続の式がこのファイル オブジェクトに出力されます。最初の式が と評価された場合、Nonesys.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 に答える