ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • <PYTHON>[coroutine]
    Flower in my dev/Python 2015. 7. 1. 11:25

    [coroutine]

     

    yield가 변했다.

     

    coroutine의 탱커(?)

     

    제너레이터를 만들어주는 것도 있지만

     

    coroutiine에서 함수의 내부에서

     

    함수의 stop point 또는 data input 으로 사용되어

     

    local 을 global처럼 유지시키면서

     

    해당 함수를 입력받은 값으로 동작시켜 유지시킨다.

     

    더욱 자세한 내용은 아래 url에서 확인

     

    http://www.dabeaz.com/coroutines/

     

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    def coroutine(func):
     
        def start(*args, **kwargs):
            print ">>>args : ", args
            print ">>>kwargs : ", kwargs
            cr = func(*args, **kwargs)
            print ">>>cr : ", cr
            cr.next()
            return cr
     
        return start
     
    if __name__ == '__main__':
        @coroutine
        def grep(pattern):
            print "Looking for %s" % pattern
            while True:
                line = (yield)
                print ">>>line : ", line
                if pattern in line:
                    print ">>>value : ",line,
     
        g = grep("python")
        g.send("Yeah, but no, but yeah, but no")
        g.send("A series of tubes")
        g.send("python generators rock!")
    cs

     

    ====

    결과

     

    'Flower in my dev > Python' 카테고리의 다른 글

    <PYTHON>[locale]  (0) 2015.07.09
    <PYTHON>[pysftp]  (0) 2015.07.02
    <PYTHON>[glob]  (0) 2015.07.01
    <PYTHON>[re : 정규표현식]  (0) 2015.06.19
    <PYTHON>[파이썬 업데이트 2.7.10]  (0) 2015.06.09

    댓글

Designed by Tistory.