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 包的一部分。
示例
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 中,如果您必须在一个可观察对象上使用多个运算符,则必须按以下方式完成 −
示例
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() 方法和多个运算符,如下所示 −
示例
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)))