访问量: 10 次浏览
在本教程中,我们使用的是 RxPY 版本 3 和 Python 版本 3.7.3。RxPY 版本 3 的工作方式与之前的版本有些不同,即 RxPY 版本 1。
在本章中,我们将讨论这两个版本之间的区别,并在更新 Python 和 RxPY 版本时需要做出的更改。
在 RxPy 版本 1 中,Observable 是一个独立的类。
使用 Observable 需要按照以下方式使用:
在 RxPy 版本 3 中,Observable 直接是 rx 包的一部分。
示例
import rx
rx.of(1,2,3,4,5,6,7,8,9,10)
在版本 1 中,操作符是 Observable 类中的方法。例如,要使用操作符,我们必须导入 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)))