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. |