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