RxPY - operatorzy

Ten rozdział zawiera szczegółowe informacje na temat operatorów w RxPY. Te operatory obejmują -

  • Praca z operatorami
  • Operatory matematyczne
  • Operatory transformacji
  • Operatory filtrujące
  • Operatory obsługi błędów
  • Operatorzy mediów
  • Operatory warunkowe
  • Operatory tworzenia
  • Operatorzy z możliwością podłączenia
  • Łączenie operatorów

Python reaktywny (Rx) ma prawie wiele operatorów, które ułatwiają życie z kodowaniem w Pythonie. Możesz używać tych wielu operatorów razem, na przykład podczas pracy z łańcuchami możesz używać operatorów mapowania, filtrowania, scalania.

Praca z operatorami

Możesz pracować z wieloma operatorami razem, używając metody pipe (). Ta metoda umożliwia łączenie wielu operatorów razem.

Oto działający przykład użycia operatorów -

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

W powyższym przykładzie stworzyliśmy obserwowalną metodę of (), która przyjmuje wartości 1, 2 i 3. Teraz, na tym obserwowalnym, możesz wykonać inną operację, używając dowolnej liczby operatorów za pomocą metody pipe (), jak pokazano powyżej. Wykonywanie operatorów będzie się odbywać sekwencyjnie na danym obserwowalnym.

Aby pracować z operatorami, najpierw zaimportuj go, jak pokazano poniżej -

from rx import of, operators as op

Oto działający przykład -

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

W powyższym przykładzie znajduje się lista liczb, z której filtrujemy liczby parzyste za pomocą operatora filtru, a później dodajemy za pomocą operatora redukuj.

Output

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

Oto lista operatorów, o których będziemy rozmawiać -

  • Tworzenie Observables
  • Operatory matematyczne
  • Operatory transformacji
  • Operatory filtrujące
  • Operatory obsługi błędów
  • Operatorzy mediów
  • Conditional
  • Connectable
  • Łączenie operatorów

Tworzenie Observables

Poniżej znajdują się obserwowalne, które omówimy w kategorii Kreacja

Pokaż przykłady

Zauważalny Opis
Stwórz Ta metoda służy do tworzenia obserwowalnych.
pusty To obserwowalne nic nie wyjdzie i bezpośrednio wyemituje stan kompletny.
nigdy Ta metoda tworzy obserwowalne, które nigdy nie osiągną pełnego stanu.
rzucać Ta metoda stworzy obserwowalny, który spowoduje błąd.
od_ Ta metoda konwertuje podaną tablicę lub obiekt na obserwowalny.
interwał Ta metoda zwróci serię wartości wygenerowanych po przekroczeniu limitu czasu.
właśnie Ta metoda zamieni podaną wartość na obserwowalną.
zasięg Ta metoda zwróci zakres liczb całkowitych na podstawie podanych danych wejściowych.
powtórz_wartość Ta metoda stworzy obserwowalny, który powtórzy daną wartość zgodnie z podaną liczbą.
początek Ta metoda przyjmuje funkcję jako dane wejściowe i zwraca obserwowalną, która zwróci wartość z funkcji wejściowej.
regulator czasowy Ta metoda wyemituje wartości w kolejności po upływie limitu czasu.

Operatory matematyczne

Operatory, które będziemy omawiać w kategorii Operator matematyczny, są następujące: -

Pokaż przykłady

Operator Opis
średni Operator ten obliczy średnią z danego obserwowalnego źródła i wyprowadzi obserwowalne, które będą miały średnią wartość.
concat Ten operator weźmie dwie lub więcej obserwabli i otrzyma jedną obserwowalną ze wszystkimi wartościami w sekwencji.
liczyć

Ten operator przyjmuje Observable with values ​​i konwertuje go na Observable, który będzie miał jedną wartość. Funkcja count przyjmuje funkcję predykatu jako argument opcjonalny.

Funkcja jest typu boolean i doda wartość do wyjścia tylko wtedy, gdy spełnia warunek.

max Ten operator da obserwowalne z maksymalną wartością z obserwowalnego źródła.
min Ten operator da obserowalną z minimalną wartością z obserwowalnego źródła.
zmniejszyć Ten operator przyjmuje funkcję zwaną funkcją akumulatora, która jest używana na wartościach pochodzących z obserwowalnego źródła i zwraca skumulowane wartości w postaci obserwowalnej, z opcjonalną wartością początkową przekazaną do funkcji akumulatora.
suma Ten operator zwróci obserwowalną z sumą wszystkich wartości z obserwabli źródłowych.

Operatory transformacji

Operatory, które będziemy omawiać w kategorii Operator transformacji, są wymienione poniżej -

Pokaż przykłady

Operator Kategoria
bufor Operator ten zbierze wszystkie wartości z obserwowalnego źródła i wyemituje je w regularnych odstępach czasu, gdy zadany warunek brzegowy zostanie spełniony.
ground_by Ten operator grupuje wartości pochodzące z obserwowalnego źródła na podstawie podanej funkcji key_mapper.
mapa Ten operator zmieni każdą wartość z obserwowalnego źródła na nową wartość na podstawie danych wyjściowych funkcji mapper_func.
skanowanie Ten operator zastosuje funkcję akumulatora do wartości pochodzących z obserwowalnego źródła i zwróci obserwowalną z nowymi wartościami.

Operatory filtrujące

Operatory, które będziemy omawiać w kategorii Operator filtrujący, są podane poniżej -

Pokaż przykłady

Operator Kategoria
Obalić Ten operator poda wartości z obserwowalnego źródła, aż do podanego okresu czasu i zignoruje pozostałą część czasu.
odrębny Ten operator poda wszystkie wartości, które są różne od obserwowalnego źródła.
element_at Ten operator da element ze źródła obserwowalny dla podanego indeksu.
filtr Operator ten odfiltruje wartości z obserwowalnego źródła na podstawie podanej funkcji predykatu.
pierwszy Ten operator da pierwszy element z obserwowalnego źródła.
ignore_elements Ten operator zignoruje wszystkie wartości z obserwowalnego źródła i wykona tylko wywołania funkcji zakończenia lub błędu wywołania zwrotnego.
ostatni, ubiegły, zeszły Ten operator da ostatni obserwowalny element ze źródła.
pominąć Ten operator zwróci obserwowalną, która pominie pierwsze wystąpienie elementów licznika przyjętych jako dane wejściowe.
skip_last Ten operator zwróci obserwowalną, która pominie ostatnie wystąpienie elementów zliczania przyjętych jako dane wejściowe.
brać Ten operator poda listę wartości źródłowych w kolejności ciągłej na podstawie podanej liczby.
take_last Ten operator poda listę wartości źródłowych w kolejności ciągłej od ostatniej na podstawie podanej liczby.

Operatory obsługi błędów

Operatory, które będziemy omawiać w kategorii Operator obsługi błędów to: -

Pokaż przykłady

Operator Opis
łapać Ten operator zakończy obserwowalne źródło, gdy wystąpi wyjątek.
spróbować ponownie Ten operator ponowi próbę na źródle obserwowalnym, gdy wystąpi błąd, a po zliczeniu ponownych prób zakończy się.

Operatorzy mediów

Poniżej znajdują się operatorzy, których omówimy w kategorii Operator Utility.

Pokaż przykłady

Operator Opis
opóźnienie Operator ten opóźni obserwowalną emisję ze źródła o podaną godzinę lub datę.
zmaterializować Operator ten przekształci wartości z obserwowalnego źródła na wartości wyemitowane w postaci wartości jawnego powiadomienia.
Przedział czasowy Ten operator poda czas, jaki upłynął między wartościami z obserwowalnego źródła.
koniec czasu Ten operator poda wszystkie wartości ze źródła, które można zaobserwować po upływie czasu, w przeciwnym razie spowoduje błąd.
znak czasu Ten operator dołączy znacznik czasu do wszystkich wartości z obserwowalnego źródła.

Operatory warunkowe i boolowskie

Operatory, które będziemy omawiać w kategorii Operator warunkowy i logiczny, są takie, jak podano poniżej -

Pokaż przykłady

Operator Opis
wszystko Operator ten sprawdzi, czy wszystkie wartości z obserwowalnego źródła spełniają podany warunek.
zawiera Ten operator zwróci obserwowalne z wartością prawda lub fałsz, jeśli dana wartość jest obecna i jeśli jest to wartość obserwowalnego źródła.
default_if_empty Ten operator zwróci wartość domyślną, jeśli obserwowalne źródło jest puste.
sekwencja_równa Ten operator porówna dwie sekwencje obserwabli lub tablicę wartości i zwróci obserwowalne z wartością prawda lub fałsz.
skip_until Ten operator będzie odrzucał wartości z obserwowalnego źródła, dopóki druga obserwowalna nie wyemituje wartości.
skip_while Ten operator zwróci obserwowalną z wartościami z obserwowalnego źródła, które spełnia przesłany warunek.
take_until Ten operator odrzuci wartości ze źródła obserwowalnego po tym, jak druga obserwowalna wyemituje wartość lub zostanie zakończona.
take_while Ten operator odrzuci wartości ze źródła obserwowalne, gdy warunek nie powiedzie się.

Operatorzy z możliwością podłączenia

Operatorzy, których będziemy omawiać w kategorii Operator z możliwością podłączenia to -

Pokaż przykłady

Operator Opis
publikować Ta metoda przekształci to, co obserwowalne w możliwe do podłączenia.
ref_count Ten operator sprawi, że to, co obserwowalne, stanie się normalnym obserwowalnym.
powtórna rozgrywka Ta metoda działa podobnie do replaySubject. Ta metoda zwróci te same wartości, nawet jeśli obserwowalne już wyemitowano i niektórzy subskrybenci spóźniają się z subskrypcją.

Łączenie operatorów

Poniżej przedstawiono operatory, które omówimy w kategorii Operator łączący.

Pokaż przykłady

Operator Opis
connect_latest Ten operator utworzy krotkę dla obserwowalnych podanych jako dane wejściowe.
łączyć Ten operator połączy podane obserwable.
zacząć od Ten operator weźmie podane wartości i doda na początku obserwowalne źródło, które zwróci pełną sekwencję.
zamek błyskawiczny Ten operator zwraca obserwowalną z wartościami w postaci krotki, która jest tworzona przez pobranie pierwszej wartości danej obserwowalnej i tak dalej.