RxPY 最新版本更新
在本教程中,我们使用的是RxPY版本3和python版本3.7.3。RxPY版本3的工作方式与之前的版本有些不同,即RxPY版本1。
在本章中,我们将讨论这两个版本之间的区别,并在更新Python和RxPY版本时需要做出的更改。
RxPY中的Observable
在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)))