RxPY - Neueste Release-Updates
In diesem Tutorial verwenden wir RxPY Version 3 und Python Version 3.7.3. Die Funktionsweise von RxPY Version 3 unterscheidet sich geringfügig von der früheren Version, dh RxPY Version 1.
In diesem Kapitel werden die Unterschiede zwischen den beiden Versionen und die Änderungen erläutert, die vorgenommen werden müssen, wenn Sie Python- und RxPY-Versionen aktualisieren.
Beobachtbar in RxPY
In RxPy Version 1 war Observable eine separate Klasse -
from rx import Observable
Um das Observable zu verwenden, müssen Sie es wie folgt verwenden:
Observable.of(1,2,3,4,5,6,7,8,9,10)
In RxPy Version 3 ist Observable direkt Teil des RX-Pakets.
Example
import rx
rx.of(1,2,3,4,5,6,7,8,9,10)
Operatoren in RxPy
In Version 1 war der Operator Methoden in der Observable-Klasse. Um beispielsweise Operatoren zu verwenden, müssen wir Observable wie unten gezeigt importieren -
from rx import Observable
Die Operatoren werden beispielsweise als Observable.operator verwendet, wie unten gezeigt -
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)))
Im Fall von RxPY Version 3 sind Operatoren funktionsfähig und werden wie folgt importiert und verwendet:
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)))
Verketten von Operatoren mit der Pipe () -Methode
In RxPy Version 1 musste für den Fall, dass Sie mehrere Operatoren für ein Observable verwenden mussten, wie folgt vorgegangen werden:
Example
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)))
Im Fall von RxPY Version 3 können Sie jedoch die pipe () -Methode und mehrere Operatoren verwenden, wie unten gezeigt -
Example
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)))