有几种方法可以写入stderr:
# Note: this first one does not work in Python 3
print >> sys.stderr, "spam"
sys.stderr.write("spam\n")
os.write(2, b"spam\n")
from __future__ import print_function
print("spam", file=sys.stderr)
Run Code Online (Sandbox Code Playgroud)
这似乎与Python#13 †的禅宗相矛盾,那么这里有什么区别,这种方式有哪些优点或缺点?应该使用哪种方式?
† 应该有一个 - 最好只有一个 - 显而易见的方法.
我有这个代码:
>>> for i in xrange(20):
... print 'a',
...
a a a a a a a a a a a a a a a a a a a a
Run Code Online (Sandbox Code Playgroud)
我想输出'a',' '不像这样:
aaaaaaaaaaaaaaaaaaaa
Run Code Online (Sandbox Code Playgroud)
可能吗?
我曾多次听说打印是一个函数(3.x)比它是一个声明(2.x)更好.但为什么?
我很喜欢它是一个声明,主要是因为它允许我键入两个较少的字符(即括号).
我有兴趣看到一些情况,其中print语句不会削减它,并且功能更优越.