RxPY - Последние обновления выпуска
В этом руководстве мы используем RxPY версии 3 и python версии 3.7.3. Работа RxPY версии 3 немного отличается от более ранней версии, то есть RxPY версии 1.
В этой главе мы собираемся обсудить различия между двумя версиями и изменения, которые необходимо сделать, если вы обновляете версии 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)))