"print >>"语法的解释

hfa*_*ran 1 python python-2.x

print >>sys.stderr, 'waiting for a connection'
Run Code Online (Sandbox Code Playgroud)

在这种情况下,任何人都可以解释">>"运营商的行为吗?

jam*_*lak 5

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

print还具有扩展形式,由上述语法的第二部分定义.这种形式有时被称为"打印V形."在这种形式中,>>必须在"文件类"对象之后的第一个表达式,特别是具有上述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)
Run Code Online (Sandbox Code Playgroud)