RxPY-最新リリースの更新
このチュートリアルでは、RxPYバージョン3とPythonバージョン3.7.3を使用しています。RxPYバージョン3の動作は、以前のバージョン、つまりRxPYバージョン1とは少し異なります。
この章では、2つのバージョンの違いと、PythonバージョンとRxPYバージョンを更新する場合に行う必要のある変更について説明します。
RxPYで観測可能
RxPyバージョン1では、Observableは別のクラスでした-
from rx import Observable
Observableを使用するには、次のように使用する必要があります-
Observable.of(1,2,3,4,5,6,7,8,9,10)
RxPyバージョン3では、Observableは直接rxパッケージの一部です。
Example
import rx
rx.of(1,2,3,4,5,6,7,8,9,10)
RxPyの演算子
バージョン1では、演算子はObservableクラスのメソッドでした。たとえば、演算子を使用するには、以下に示すようにObservableをインポートする必要があります-
from rx import Observable
演算子は、たとえば、以下に示すようにObservable.operatorとして使用されます。
Observable.of(1,2,3,4,5,6,7,8,9,10)\
.filter(lambda i: i %2 == 0) \
.sum() \
.subscribe(lambda x: print("Value is {0}".format(x)))
RxPYバージョン3の場合、演算子は関数であり、次のようにインポートおよび使用されます。
import rx
from rx import operators as ops
rx.of(1,2,3,4,5,6,7,8,9,10).pipe(
ops.filter(lambda i: i %2 == 0),
ops.sum()
).subscribe(lambda x: print("Value is {0}".format(x)))
Pipe()メソッドを使用した演算子の連鎖
RxPyバージョン1では、オブザーバブルで複数の演算子を使用する必要がある場合、次のように実行する必要がありました。
Example
from rx import Observable
Observable.of(1,2,3,4,5,6,7,8,9,10)\
.filter(lambda i: i %2 == 0) \
.sum() \
.subscribe(lambda x: print("Value is {0}".format(x)))
ただし、RxPYバージョン3の場合は、以下に示すように、pipe()メソッドと複数の演算子を使用できます。
Example
import rx
from rx import operators as ops
rx.of(1,2,3,4,5,6,7,8,9,10).pipe(
ops.filter(lambda i: i %2 == 0),
ops.sum()
).subscribe(lambda x: print("Value is {0}".format(x)))