现在的位置: 首页 > 综合 > 正文

002_013 Python 使用C++类的iostream语法

2018年02月15日 ⁄ 综合 ⁄ 共 628字 ⁄ 字号 评论关闭

代码如下:

#encoding=utf-8


print '中国'

#使用C++类的iostream语法
#如果要使用<<需要定义__lshift__

#关联IO函数
class IOManipulator(object):
    def __init__(self,function=None):
        self.function = function
    def do(self, output):
        self.function(output)
#设置换行
def do_endl(stream):  
    stream.output.write('\n')
    stream.output.flush()

endl= IOManipulator(do_endl)

class OStream(object):
    def __init__(self,output=None):
        if output is None:
            import sys            
            output = sys.stdout
            self.output = output
            self.format = '%s'
    def __lshift__(self,thing):
        if isinstance(thing,IOManipulator):
            thing.do(self)
        else:
            self.output.write(self.format % thing)
            self.format = '%s'
        return self
   
cout = OStream()

cout<<'The avg of 1 +3 is '<<2<<endl

打印结果如下:

中国
The avg of 1 +3 is 2

抱歉!评论已关闭.