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)))