RxPY - Operatoren

In diesem Kapitel werden die Operatoren in RxPY ausführlich erläutert. Diese Operatoren umfassen -

  • Arbeiten mit Operatoren
  • Mathematische Operatoren
  • Transformationsoperatoren
  • Filteroperatoren
  • Fehlerbehandlungsoperatoren
  • Versorgungsunternehmen
  • Bedingte Operatoren
  • Erstellungsoperatoren
  • Anschließbare Bediener
  • Operatoren kombinieren

Reactive (Rx) Python hat fast viele Operatoren, die das Leben mit Python-Codierung erleichtern. Sie können diese mehreren Operatoren zusammen verwenden. Wenn Sie beispielsweise mit Zeichenfolgen arbeiten, können Sie Zuordnungs-, Filter- und Zusammenführungsoperatoren verwenden.

Arbeiten mit Operatoren

Mit der Methode pipe () können Sie mit mehreren Operatoren zusammenarbeiten. Diese Methode ermöglicht die Verkettung mehrerer Operatoren.

Hier ist ein funktionierendes Beispiel für die Verwendung von Operatoren -

test = of(1,2,3) // an observable
subscriber = test.pipe(
   op1(),
   op2(),
   op3()
)

Im obigen Beispiel haben wir eine beobachtbare Methode mit der Methode () erstellt, die die Werte 1, 2 und 3 annimmt. Auf dieser Beobachtungsmethode können Sie nun eine andere Operation ausführen, indem Sie eine beliebige Anzahl von Operatoren mit der Methode pipe () verwenden (siehe Abbildung) über. Die Ausführung der Operatoren erfolgt nacheinander auf der angegebenen beobachtbaren Stelle.

Um mit Operatoren zu arbeiten, importieren Sie es zuerst wie unten gezeigt -

from rx import of, operators as op

Hier ist ein Arbeitsbeispiel -

testrx.py

from rx import of, operators as op
test = of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
sub1 = test.pipe(
   op.filter(lambda s: s%2==0),
   op.reduce(lambda acc, x: acc + x)
)
sub1.subscribe(lambda x: print("Sum of Even numbers is {0}".format(x)))

Im obigen Beispiel gibt es eine Liste von Zahlen, aus der wir gerade Zahlen mit einem Filteroperator filtern und später mit einem Reduzierungsoperator hinzufügen.

Output

E:\pyrx>python testrx.py
Sum of Even numbers is 30

Hier ist eine Liste der Operatoren, die wir diskutieren werden -

  • Observables erstellen
  • Mathematische Operatoren
  • Transformationsoperatoren
  • Filteroperatoren
  • Fehlerbehandlungsoperatoren
  • Versorgungsunternehmen
  • Conditional
  • Connectable
  • Operatoren kombinieren

Observables erstellen

Im Folgenden sind die Observablen aufgeführt, die wir in der Kategorie "Schöpfung" diskutieren werden

Beispiele anzeigen

Beobachtbar Beschreibung
erstellen Diese Methode wird verwendet, um ein Observable zu erstellen.
leer Dieses Observable gibt nichts aus und gibt direkt den vollständigen Zustand aus.
noch nie Diese Methode erstellt ein Observable, das niemals den vollständigen Zustand erreicht.
werfen Diese Methode erstellt eine Observable, die einen Fehler auslöst.
von_ Diese Methode konvertiert das angegebene Array oder Objekt in ein Observable.
Intervall Diese Methode liefert eine Reihe von Werten, die nach einer Zeitüberschreitung erzeugt werden.
gerade Diese Methode wandelt den angegebenen Wert in einen beobachtbaren Wert um.
Angebot Diese Methode gibt einen Bereich von Ganzzahlen basierend auf der angegebenen Eingabe an.
repeat_value Diese Methode erstellt eine Observable, die den angegebenen Wert gemäß der angegebenen Anzahl wiederholt.
Start Diese Methode nimmt eine Funktion als Eingabe auf und gibt eine Observable zurück, die einen Wert von der Eingabefunktion zurückgibt.
Timer Diese Methode gibt die Werte nach Ablauf des Timeouts nacheinander aus.

Mathematische Operatoren

Die Operatoren, die wir in der Kategorie Mathematische Operatoren diskutieren werden, sind wie folgt: -

Beispiele anzeigen

Operator Beschreibung
durchschnittlich Dieser Operator berechnet den Durchschnitt aus der angegebenen beobachtbaren Quelle und gibt eine beobachtbare Größe mit dem Durchschnittswert aus.
concat Dieser Operator nimmt zwei oder mehr Observablen auf und erhält eine einzige Observable mit allen Werten in der Sequenz.
Anzahl

Dieser Operator nimmt ein Observable mit Werten auf und konvertiert es in ein Observable mit einem einzelnen Wert. Die Zählfunktion nimmt die Prädikatfunktion als optionales Argument auf.

Die Funktion ist vom Typ Boolean und fügt der Ausgabe nur dann einen Wert hinzu, wenn sie die Bedingung erfüllt.

max Dieser Operator gibt ein Observable mit maximalem Wert aus der beobachtbaren Quelle an.
Mindest Dieser Operator gibt eine beobachtbare mit einem minimalen Wert von der beobachtbaren Quelle an.
reduzieren Dieser Operator übernimmt eine Funktion namens Akkumulatorfunktion, die für die Werte verwendet wird, die von der beobachtbaren Quelle stammen, und gibt die akkumulierten Werte in Form einer beobachtbaren zurück, wobei ein optionaler Startwert an die Akkumulatorfunktion übergeben wird.
Summe Dieser Operator gibt eine Observable mit der Summe aller Werte von Source Observables zurück.

Transformationsoperatoren

Die Operatoren, die wir in der Kategorie Transformationsoperatoren diskutieren werden, sind unten aufgeführt -

Beispiele anzeigen

Operator Kategorie
Puffer Dieser Operator sammelt alle Werte aus der beobachtbaren Quelle und gibt sie in regelmäßigen Abständen aus, sobald die angegebene Randbedingung erfüllt ist.
ground_by Dieser Operator gruppiert die Werte, die von der beobachtbaren Quelle stammen, basierend auf der angegebenen Funktion key_mapper.
Karte Dieser Operator ändert jeden Wert aus der beobachtbaren Quelle in einen neuen Wert, basierend auf der Ausgabe des angegebenen mapper_func.
Scan Dieser Operator wendet eine Akkumulatorfunktion auf die Werte an, die von der beobachtbaren Quelle stammen, und gibt eine beobachtbare mit neuen Werten zurück.

Filteroperatoren

Die Operatoren, die wir in der Kategorie Filteroperatoren diskutieren werden, sind unten angegeben -

Beispiele anzeigen

Operator Kategorie
entprellen Dieser Operator gibt die Werte aus der beobachtbaren Quelle bis zur angegebenen Zeitspanne an und ignoriert den Rest der Zeit.
deutlich Dieser Operator gibt alle Werte an, die sich von der beobachtbaren Quelle unterscheiden.
element_at Dieser Operator gibt ein Element aus der Quelle an, das für den angegebenen Index beobachtbar ist.
Filter Dieser Operator filtert Werte aus der beobachtbaren Quelle basierend auf der angegebenen Prädikatfunktion.
zuerst Dieser Operator gibt das erste Element aus der beobachtbaren Quelle an.
ignore_elements Dieser Operator ignoriert alle Werte aus der beobachtbaren Quelle und führt nur Aufrufe aus, um Rückruffunktionen abzuschließen oder Fehler zu machen.
zuletzt Dieser Operator gibt das letzte beobachtbare Element aus der Quelle an.
überspringen Dieser Operator gibt ein Observable zurück, das das erste Auftreten von Zählelementen überspringt, die als Eingabe verwendet werden.
skip_last Dieser Operator gibt ein Observable zurück, das das letzte Auftreten von Zählelementen überspringt, die als Eingabe verwendet wurden.
nehmen Dieser Operator gibt eine Liste der Quellwerte in fortlaufender Reihenfolge basierend auf der angegebenen Anzahl an.
take_last Dieser Operator gibt eine Liste der Quellwerte in fortlaufender Reihenfolge vom letzten basierend auf der angegebenen Anzahl an.

Fehlerbehandlungsoperatoren

Die Operatoren, die wir in der Kategorie Fehlerbehandlungsoperatoren diskutieren werden, sind: -

Beispiele anzeigen

Operator Beschreibung
Fang Dieser Operator beendet die beobachtbare Quelle, wenn eine Ausnahme vorliegt.
wiederholen Dieser Operator versucht es erneut mit der Quelle, die bei einem Fehler beobachtet werden kann, und wird beendet, sobald die Wiederholungszählung abgeschlossen ist.

Versorgungsunternehmen

Im Folgenden sind die Operatoren aufgeführt, die in der Kategorie Utility-Operatoren erläutert werden.

Beispiele anzeigen

Operator Beschreibung
verzögern Dieser Bediener verzögert die beobachtbare Emission der Quelle gemäß der angegebenen Uhrzeit oder dem angegebenen Datum.
materialisieren Dieser Operator konvertiert die Werte aus der beobachtbaren Quelle mit den ausgegebenen Werten in Form expliziter Benachrichtigungswerte.
Zeitintervall Dieser Operator gibt die zwischen den Werten der beobachtbaren Quelle verstrichene Zeit an.
Auszeit Dieser Operator gibt alle Werte aus der Quelle an, die nach Ablauf der Zeit beobachtbar sind, oder löst einen Fehler aus.
Zeitstempel Dieser Operator fügt allen beobachtbaren Werten der beobachtbaren Quelle einen Zeitstempel hinzu.

Bedingte und boolesche Operatoren

Die Operatoren, die wir in der Kategorie Bedingte und Boolesche Operatoren diskutieren werden, sind wie folgt:

Beispiele anzeigen

Operator Beschreibung
alle Dieser Operator prüft, ob alle Werte aus der beobachtbaren Quelle die angegebene Bedingung erfüllen.
enthält Dieser Operator gibt eine Observable mit dem Wert true oder false zurück, wenn der angegebene Wert vorhanden ist und wenn es sich um den Wert der Observable Source handelt.
default_if_empty Dieser Operator gibt einen Standardwert zurück, wenn die beobachtbare Quelle leer ist.
sequence_equal Dieser Operator vergleicht zwei Folgen von Observablen oder ein Array von Werten und gibt eine Observable mit dem Wert true oder false zurück.
skip_until Dieser Operator verwirft Werte aus der beobachtbaren Quelle, bis die zweite beobachtbare Quelle einen Wert ausgibt.
skip_while Dieser Operator gibt eine Observable mit Werten aus der Source Observable zurück, die die übergebene Bedingung erfüllen.
take_until Dieser Operator verwirft Werte aus der beobachtbaren Quelle, nachdem die zweite beobachtbare einen Wert ausgegeben oder beendet hat.
take_while Dieser Operator verwirft Werte aus der Quelle, die beobachtet werden können, wenn die Bedingung fehlschlägt.

Anschließbare Operatoren

Die Operatoren, die wir in der Kategorie Connectable Operator diskutieren werden, sind -

Beispiele anzeigen

Operator Beschreibung
veröffentlichen Diese Methode wandelt das Observable in ein verbindbares Observable um.
ref_count Dieser Operator macht das Observable zu einem normalen Observable.
Wiederholung Diese Methode funktioniert ähnlich wie das replaySubject. Diese Methode gibt dieselben Werte zurück, auch wenn das Observable bereits gesendet wurde und einige Abonnenten zu spät abonniert haben.

Operatoren kombinieren

Das Folgende sind die Operatoren, die wir in der Kategorie Kombinieren von Operatoren diskutieren werden.

Beispiele anzeigen

Operator Beschreibung
kombinieren_latest Dieser Operator erstellt ein Tupel für das als Eingabe angegebene Observable.
verschmelzen Dieser Operator führt bestimmte Observablen zusammen.
beginnen mit Dieser Operator nimmt die angegebenen Werte auf und fügt zu Beginn der beobachtbaren Quelle die vollständige Sequenz zurück.
Postleitzahl Dieser Operator gibt eine Observable mit Werten in Tupelform zurück, die gebildet wird, indem der erste Wert der gegebenen Observable usw. verwendet wird.