数据流处理器类

来源:互联网 发布:贝叶斯学派全知理论 编辑:程序博客网 时间:2024/06/08 10:14

streams.py
这个类定义了一个转换器方法,它期待子类来填充。它是一个抽象超类。以这种方法编写代码,读取器和写入器对象会内嵌在类实例中(组合),在提供转换器的逻辑,而不是传入一个转换器函数(继承)

class Processor:    def __init__(self,reader,writer):        self.reader = reader        self.writer = writer    def process(self):        while 1:            data = self.reader.readline()            if not data:break            data = self.converter(data)            self.writer.write(data)    def converter(self,data):        assert False,'converter must be defined'

converters.py
Uppercase类继承了类处理的循环逻辑(超类内所定的其他任何事情)它只所特有的事件:数据转换逻辑。

from streams import Processorclass Uppercase(Processor):    def converter(self,data):        return data.upper()if __name__ == '__main__':    import sys    obj = Uppercase(open('spam.txt'),sys.stdout)    obj.process()
原创粉丝点击