RxPY - Operatori

Questo capitolo spiega in dettaglio gli operatori in RxPY. Questi operatori includono:

  • Lavorare con gli operatori
  • Operatori matematici
  • Operatori di trasformazione
  • Operatori di filtraggio
  • Operatori di gestione degli errori
  • Operatori di servizi
  • Operatori condizionali
  • Operatori di creazione
  • Operatori collegabili
  • Combinare gli operatori

Python reattivo (Rx) ha quasi molti operatori, che semplificano la vita con il codice Python. È possibile utilizzare questi più operatori insieme, ad esempio, mentre si lavora con le stringhe è possibile utilizzare operatori di mappatura, filtro e unione.

Lavorare con gli operatori

Puoi lavorare con più operatori insieme usando il metodo pipe (). Questo metodo consente di concatenare più operatori insieme.

Ecco un esempio funzionante dell'utilizzo degli operatori:

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

Nell'esempio sopra, abbiamo creato un osservabile utilizzando il metodo of () che accetta i valori 1, 2 e 3. Ora, su questo osservabile, puoi eseguire un'operazione diversa, utilizzando qualsiasi numero di operatori utilizzando il metodo pipe () come mostrato sopra. L'esecuzione degli operatori proseguirà sequenzialmente sull'osservabile dato.

Per lavorare con gli operatori, importalo prima come mostrato di seguito:

from rx import of, operators as op

Ecco un esempio funzionante:

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

Nell'esempio sopra, c'è un elenco di numeri, da cui filtriamo i numeri pari utilizzando un operatore di filtro e successivamente aggiungiamo utilizzando un operatore di riduzione.

Output

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

Ecco un elenco di operatori di cui parleremo:

  • Creazione di osservabili
  • Operatori matematici
  • Operatori di trasformazione
  • Operatori di filtraggio
  • Operatori di gestione degli errori
  • Operatori di servizi
  • Conditional
  • Connectable
  • Combinare gli operatori

Creazione di osservabili

Di seguito sono riportati gli osservabili, che discuteremo nella categoria Creazione

Mostra esempi

Osservabile Descrizione
creare Questo metodo viene utilizzato per creare un osservabile.
vuoto Questo osservabile non produrrà nulla ed emetterà direttamente lo stato completo.
mai Questo metodo crea un osservabile che non raggiungerà mai lo stato completo.
gettare Questo metodo creerà un osservabile che genererà un errore.
a partire dal_ Questo metodo convertirà l'array o l'oggetto dato in un osservabile.
intervallo Questo metodo darà una serie di valori prodotti dopo un timeout.
appena Questo metodo convertirà il valore dato in un osservabile.
gamma Questo metodo fornirà un intervallo di numeri interi in base all'input fornito.
repeat_value Questo metodo creerà un osservabile che ripeterà il valore dato in base al conteggio.
inizio Questo metodo accetta una funzione come input e restituisce un osservabile che restituirà un valore dalla funzione di input.
Timer Questo metodo emetterà i valori in sequenza al termine del timeout.

Operatori matematici

Gli operatori di cui parleremo nella categoria Operatore matematico sono i seguenti: -

Mostra esempi

Operatore Descrizione
media Questo operatore calcolerà la media dalla sorgente osservabile data e produrrà un osservabile che avrà il valore medio.
concat Questo operatore accetterà due o più osservabili e ne darà una singola con tutti i valori nella sequenza.
contare

Questo operatore accetta un osservabile con valori e lo converte in un osservabile che avrà un unico valore. La funzione count accetta la funzione predicato come argomento opzionale.

La funzione è di tipo booleano e aggiungerà valore all'output solo se soddisfa la condizione.

max Questo operatore darà un osservabile con il valore massimo dalla sorgente osservabile.
min Questo operatore darà un osservabile con valore minimo dalla sorgente osservabile.
ridurre Questo operatore accetta una funzione chiamata funzione accumulator che viene utilizzata sui valori provenienti dalla sorgente osservabile e restituisce i valori accumulati sotto forma di osservabile, con un valore seed opzionale passato alla funzione accumulator.
somma Questo operatore restituirà un osservabile con la somma di tutti i valori delle osservabili di origine.

Operatori di trasformazione

Gli operatori di cui parleremo nella categoria Operatore di trasformazione sono menzionati di seguito:

Mostra esempi

Operatore Categoria
buffer Questo operatore raccoglierà tutti i valori dalla sorgente osservabile e li emetterà a intervalli regolari una volta soddisfatta la data condizione al contorno.
ground_by Questo operatore raggrupperà i valori provenienti dalla sorgente osservabile in base alla funzione key_mapper data.
carta geografica Questo operatore cambierà ogni valore dalla sorgente osservabile in un nuovo valore basato sull'output di mapper_func fornito.
scansione Questo operatore applicherà una funzione accumulatore ai valori provenienti dalla sorgente osservabile e restituirà un osservabile con nuovi valori.

Operatori di filtraggio

Gli operatori di cui parleremo nella categoria Operatori di filtraggio sono riportati di seguito:

Mostra esempi

Operatore Categoria
antirimbalzo Questo operatore fornirà i valori dalla sorgente osservabile, fino al periodo di tempo specificato e ignorerà il resto del tempo.
distinto Questo operatore darà tutti i valori che sono distinti dalla fonte osservabile.
element_at Questo operatore fornirà un elemento dalla fonte osservabile per l'indice dato.
filtro Questo operatore filtrerà i valori dalla sorgente osservabile in base alla funzione del predicato fornita.
primo Questo operatore fornirà il primo elemento osservabile dalla sorgente.
ignore_elements Questo operatore ignorerà tutti i valori dalla fonte osservabile ed eseguirà solo chiamate per completare o generare errori nelle funzioni di callback.
scorso Questo operatore fornirà l'ultimo elemento dalla sorgente osservabile.
Salta Questo operatore restituirà un osservabile che salterà la prima occorrenza degli elementi di conteggio presi come input.
skip_last Questo operatore restituirà un osservabile che salterà l'ultima occorrenza degli elementi di conteggio presi come input.
prendere Questo operatore fornirà un elenco di valori di origine in ordine continuo in base al conteggio fornito.
take_last Questo operatore fornirà un elenco di valori di origine in ordine continuo dall'ultimo in base al conteggio fornito.

Operatori di gestione degli errori

Gli operatori di cui parleremo nella categoria Operatore di gestione degli errori sono: -

Mostra esempi

Operatore Descrizione
catturare Questo operatore terminerà la sorgente osservabile quando c'è un'eccezione.
riprova Questo operatore riproverà sull'origine osservabile quando si verifica un errore e una volta terminato il conteggio dei tentativi terminerà.

Operatori di servizi

I seguenti sono gli operatori di cui discuteremo nella categoria Operatore di utilità.

Mostra esempi

Operatore Descrizione
ritardo Questo operatore ritarderà l'emissione osservabile della fonte in base all'ora o alla data fornita.
materializzarsi Questo operatore convertirà i valori dalla sorgente osservabile con i valori emessi sotto forma di valori di notifica esplicita.
Intervallo di tempo Questo operatore fornirà il tempo trascorso tra i valori osservabili dalla sorgente.
tempo scaduto Questo operatore fornirà tutti i valori dalla sorgente osservabili dopo il tempo trascorso oppure attiverà un errore.
timestamp Questo operatore allegherà un timestamp a tutti i valori dalla fonte osservabile.

Operatori condizionali e booleani

Gli operatori di cui parleremo nella categoria Operatore condizionale e booleano sono i seguenti:

Mostra esempi

Operatore Descrizione
tutti Questo operatore verificherà se tutti i valori della sorgente osservabile soddisfano la condizione data.
contiene Questo operatore restituirà un osservabile con il valore vero o falso se il valore dato è presente e se è il valore della sorgente osservabile.
default_if_empty Questo operatore restituirà un valore predefinito se l'osservabile di origine è vuoto.
sequenza_equal Questo operatore confronterà due sequenze di osservabili o una matrice di valori e restituirà un'osservabile con il valore vero o falso.
skip_until Questo operatore scarterà i valori dalla sorgente osservabile fino a quando la seconda osservabile non emetterà un valore.
skip_ while Questo operatore restituirà un osservabile con valori dalla sorgente osservabile che soddisfa la condizione passata.
take_until Questo operatore scarterà i valori dalla sorgente osservabile dopo che il secondo osservabile emette un valore o viene terminato.
prendere_tempo Questo operatore scarterà i valori dalla fonte osservabile quando la condizione fallisce.

Operatori collegabili

Gli operatori di cui parleremo nella categoria Operatore collegabile sono:

Mostra esempi

Operatore Descrizione
pubblicare Questo metodo convertirà l'osservabile in un osservabile collegabile.
ref_count Questo operatore renderà l'osservabile una normale osservabile.
replay Questo metodo funziona in modo simile a replaySubject. Questo metodo restituirà gli stessi valori, anche se l'osservabile ha già emesso e alcuni degli abbonati sono in ritardo nella sottoscrizione.

Combinazione di operatori

I seguenti sono gli operatori di cui parleremo nella categoria Operatore di combinazione.

Mostra esempi

Operatore Descrizione
combinare_latest Questo operatore creerà una tupla per l'osservabile dato come input.
unire Questo operatore unirà dati osservabili.
iniziare con Questo operatore prenderà i valori dati e aggiungerà all'inizio della sorgente osservabile per restituire l'intera sequenza.
cerniera lampo Questo operatore restituisce un osservabile con valori in una forma tupla che è formata prendendo il primo valore dell'osservabile dato e così via.