RxPY - najnowsze aktualizacje wydania
W tym samouczku używamy RxPY w wersji 3 i Pythona w wersji 3.7.3. Działanie RxPY w wersji 3 różni się nieco od wcześniejszej wersji, czyli RxPY w wersji 1.
W tym rozdziale omówimy różnice między dwiema wersjami i zmiany, które należy wprowadzić w przypadku aktualizacji wersji Python i RxPY.
Zaobserwowane w RxPY
W RxPy w wersji 1 Observable było osobną klasą -
from rx import Observable
Aby użyć Observable, musisz użyć go w następujący sposób -
Observable.of(1,2,3,4,5,6,7,8,9,10)
W wersji 3 RxPy Observable jest bezpośrednio częścią pakietu rx.
Example
import rx
rx.of(1,2,3,4,5,6,7,8,9,10)
Operatory w RxPy
W wersji 1 operatorem były metody z klasy Observable. Na przykład, aby skorzystać z operatorów, musimy zaimportować Observable, jak pokazano poniżej -
from rx import Observable
Operatory są używane jako Observable.operator, na przykład, jak pokazano poniżej -
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)))
W przypadku RxPY w wersji 3 operatory są funkcjami i są importowane i używane w następujący sposób -
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)))
Operatory łańcuchowe przy użyciu metody Pipe ()
W wersji 1 RxPy, gdybyś musiał użyć wielu operatorów na obserwowalnym, należało to zrobić w następujący sposób -
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)))
Ale w przypadku RxPY w wersji 3 możesz użyć metody pipe () i wielu operatorów, jak pokazano poniżej -
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)))