RxPY - 最新發行更新



本教程使用的是 RxPY 版本 3 和 Python 版本 3.7.3。RxPY 版本 3 的工作方式與早期版本(即 RxPY 版本 1)略有不同。

本章中,我們將討論 2 個版本之間的區別,以及如果你正在更新 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)))
廣告