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 中,如果您必须在 observable 上使用多个运算符,则必须按以下方式完成 -
    实例
    
    
    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)))