Instantly share code, notes, and snippets.

@mogeta /subject.py
Last active Dec 7, 2017

Embed
What would you like to do?
https://github.com/ReactiveX/RxPY の解説。Subjectについて。
from rx.subjects import Subject
def is_even(num):
"""
偶数かどうかを判定する。filterで呼び出されている。
TrueかFalseを返すのであって、数値自体は返さない。
:param num:
:return: Bool
"""
return num % 2 == 0
def double(num):
"""
受け取った値を倍返し
:param num:
:return: int
"""
return num * 2
# subjectを作成
stream = Subject()
# 一連の処理を作成する。投げられた値が偶数だったら倍にして表示する。
d = stream\
.filter(is_even) \
.map(double) \
.subscribe(lambda x: print("Got: %s" % x))
# 試しに値をなんぼか送信
stream.on_next(42)
stream.on_next(43)
stream.on_next(44)
stream.on_next(45)
# disposeしたあとに値を送信しても何もおこらない。
d.dispose()
stream.on_next(46)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment