2
import cStringIO

output = cStringIO.StringIO()
output.write('First line.\n')
print >>output, 'Second line.'

# Retrieve file contents -- this will be
# 'First line.\nSecond line.\n'
contents = output.getvalue()

>>output5行目のステートメントは何をしprintますか?

4

1 に答える 1

6

printステートメント出力を開いているファイルのようなオブジェクトにリダイレクトします。printステートメントのドキュメントを参照してください:

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

基本的に、行はoutput.write('Second line.' + '\n') asprint`に変換され、式がコンマで終わっていない限り、出力に改行が追加されます。

構文はbash追加構文に基づいてい>>ます(これはC++<<および>>I/ O演算子にも影響します)。これが選ばれた理由の完全な動機については、PEP214を参照してください。

Python 3ではprint()、関数は次のように記述します。

print('Second line.', file=output)

代わりは。

于 2013-03-26T11:51:00.030 に答える