본문 바로가기
프로그래밍/Python

Reactive Python for Data.

by LiveData 2018. 12. 1.
반응형

0. Reactive Python 소개

 Reactive Python 프로그래밍은 이벤트를 데이터 및 데이터 이벤트로 다루는데 효과적인 방법입니다. RxPy를 사용하여 RxPy의 푸시 기반 반복 및 체인과 같은 연산자를 활용하여 논리 및 동시성을 표현하는 방법을 학습할 수 있습니다.

- rx (reactive extention 설치)

cmd

 >>pip install rx



 

from rx import Observable

letters=Observable.from_(["Alpha",Beta","Gamma","Delta","Epsilon"])




Observable로 아이템들을 넣을 수 있습니다. 예제에서는 5개의 아이템을 추가하였습니다.

from_ 통하여 리스트 형태로 5개 스트링이 순차적으로 letters변수 안에 들어갔습니다.

letters를 읽을 때에는 Subscriber라는 것이 필요합니다.


 

from rx import Observable, Observer


letters=Observable.form_(["Alpha",Beta","Gamma","Delta","Epsilon"])


class MySubscriber(Observer):

def on_next(self, value):

print(value)


def on_completed(self):

print("Done!")


def on_derror(self, error):

print("Error occured: {0}".format(error))


letters.subscribe(MySubscriber())



​결과

Received: Alpha

Received: Beta

Received: Gamma

Received: Delta

Received: Epsilon

Done!

Observer를 import해주어 MySubscriber의 클래스를 만들어 줍니다.

결과를 보시면 letters에 넣어준 리스트를 on_next를 하여 순차적으로 출력해 줍니다.


Lamdas 식으로 표현 

 from rx import Observable


letters=Observable.form_(["Alpha",Beta","Gamma","Delta","Epsilon"])

letters.subscribe(on_next = lambda value: print(value),

    on_completed=lambda: print("Completed!"),

    on_error=lambda error: print("Error occurred:{0}",format(error))


subscribe() 함수안의 arguments값에 lambda식을 넣어 기능을 호출할 수 있습니다.

lambda를 사용함으로써 reactive programming을 한다는것 같네요.



혹시 Reactive python에 관심이 있으신분은 아래 링크에서 같이 배워요.ㅎㅎ



https://github.com/thomasnield/oreilly_reactive_python_for_data

오픈 강의 자료

동영상 강의 제공 (유료)​

반응형