无知的 TonySeek

Yet Another Seeker

Python 中 print 语句的诡异用法

真是孤陋寡闻了,到了今日看了一篇博客 [1] 才知道 Python 中 print 语句有种类似 C++ 流操作符的诡异用法:

import sys

error_log = open("./error.log", "a")
print >> sys.stderr, "some error message"
print >> error_log, "some error message"

error_log.close()

当然了,只有 2.x 的 Python 才有 print 语句一说,在 Python 3.x 中(以及导入了 from __future__ import print_function 的 Python 2.x 中),print 已经变成一个函数了,故上述做法不可行。但是有更好的替代方案:

#!/usr/bin/env python

import sys

error_log = open("./error.log", "a")
print("some error message", file=sys.stderr)
print("some error message", file=error_log)

error_log.close()

老家天气略冷,敲键盘略艰难……

[1]SCGI与线程

Python

Comments