具体含义
在python2中>> sys.stderr
的格式 是让print
语句的输出 从stdout
改为stderr
.
为什么我们总是遇到 print >> sys.stderr
而不是print >> sys.stdout
的写法呢?
原因是因为, sys.stderr
的输出是红色的, 这样更加明显, 想要输出比较重要的日志时, 可以会这样写
可参考 python文档
函数解释
print
也是有一个扩展格式的, 由语法的第二部分来决定, 就是后面添加的’>>’, 这种格式有的时候被称为’print chevron.’.
‘>>’ 必须指向一个’类似文件’的对象, 就是该对象必须有一个write函数, 然后我们就会用该对象的write
进行输出了, 如果没有’>>’, 则是默认为’>> stdout’
实验
知道了上面的特性, 那么我们做个实验来测试一下, 我们让输出的前后都加上一行================
class MyStdOut(object):
def write(self, str):
if str == '\n':
return
print '===================='
print str
print '===================='
my_stdout = MyStdOut()
print >> my_stdout, 'hello world'
执行结果如下: