状态模式

2017-07-07  本文已影响11人  nummycode

状态模式就是根据不同的状态调用不同的方法

def outputparser(loglines):
    state = 'header'
    program,end_time,send_failure= None,None,False

    for line in loglines:
        if state == 'header':
            program = line.split(',')[0]
            state = 'body'
        elif state == 'body':
            if 'send_failure' in line:
                send_failure = True
            if '======' in line:
                state = 'footer'
        elif state == 'footer':
            end_time = line.split(',')[0]
    return program, end_time, send_failure

print(outputparser(['sampleapp,only a sampleapp',
              'logline1  sadfsfdf',
              'logline2 send_failure',
              '=====================',
              '30th Jul 2016,END']))

输出如下:

('sampleapp', '30th Jul 2016', True)
上一篇 下一篇

猜你喜欢

热点阅读