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