RxPY - Operadores

Este capítulo explica en detalle los operadores en RxPY. Estos operadores incluyen:

  • Trabajar con operadores
  • Operadores matemáticos
  • Operadores de transformación
  • Operadores de filtrado
  • Operadores de manejo de errores
  • Operadores de servicios públicos
  • Operadores condicionales
  • Operadores de creación
  • Operadores conectables
  • Combinando operadores

Python reactivo (Rx) tiene casi muchos operadores, que facilitan la vida con la codificación de Python. Puede usar estos múltiples operadores juntos, por ejemplo, mientras trabaja con cadenas, puede usar operadores de mapa, filtro y combinación.

Trabajar con operadores

Puede trabajar con varios operadores juntos usando el método pipe (). Este método permite encadenar varios operadores juntos.

Aquí hay un ejemplo práctico del uso de operadores:

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

En el ejemplo anterior, hemos creado un método observable usando of () que toma los valores 1, 2 y 3. Ahora, en este observable, puede realizar una operación diferente, usando cualquier número de operadores usando el método pipe () como se muestra encima. La ejecución de los operadores continuará secuencialmente sobre el dato observable.

Para trabajar con operadores, primero impórtelo como se muestra a continuación:

from rx import of, operators as op

Aquí hay un ejemplo práctico:

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

En el ejemplo anterior, hay una lista de números, de la cual estamos filtrando números pares usando un operador de filtro y luego agregándolos usando un operador de reducción.

Output

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

Aquí hay una lista de operadores, que vamos a discutir:

  • Creando Observables
  • Operadores matemáticos
  • Operadores de transformación
  • Operadores de filtrado
  • Operadores de manejo de errores
  • Operadores de servicios públicos
  • Conditional
  • Connectable
  • Combinando operadores

Creando Observables

A continuación se muestran los observables que vamos a discutir en la categoría Creación.

Mostrar ejemplos

Observable Descripción
crear Este método se utiliza para crear un observable.
vacío Este observable no generará nada y emitirá directamente el estado completo.
Nunca Este método crea un observable que nunca alcanzará el estado completo.
lanzar Este método creará un observable que arrojará un error.
desde_ Este método convertirá la matriz u objeto dado en un observable.
intervalo Este método dará una serie de valores producidos después de un tiempo de espera.
sólo Este método convertirá el valor dado en un observable.
rango Este método dará un rango de números enteros según la entrada dada.
repetir_valor Este método creará un observable que repetirá el valor dado según se dé el recuento.
comienzo Este método toma una función como entrada y devuelve un observable que devolverá el valor de la función de entrada.
Temporizador Este método emitirá los valores en secuencia después de que finalice el tiempo de espera.

Operadores matemáticos

Los operadores que vamos a discutir en la categoría de operador matemático son los siguientes: -

Mostrar ejemplos

Operador Descripción
promedio Este operador calculará el promedio de la fuente observable dada y generará un observable que tendrá el valor promedio.
concat Este operador tomará dos o más observables y se le dará un solo observable con todos los valores en la secuencia.
contar

Este operador toma un Observable con valores y lo convierte en un Observable que tendrá un solo valor. La función de conteo toma la función de predicado como un argumento opcional.

La función es de tipo booleano y agregará valor a la salida solo si satisface la condición.

max Este operador dará un observable con el valor máximo de la fuente observable.
min Este operador dará un observable con un valor mínimo de la fuente observable.
reducir Este operador toma una función llamada función acumuladora que se usa en los valores provenientes de la fuente observable, y devuelve los valores acumulados en forma de observable, con un valor semilla opcional pasado a la función acumuladora.
suma Este operador devolverá un observable con la suma de todos los valores de los observables de origen.

Operadores de transformación

Los operadores que vamos a discutir en la categoría de operador de transformación se mencionan a continuación:

Mostrar ejemplos

Operador Categoría
buffer Este operador recopilará todos los valores de la fuente observable y los emitirá a intervalos regulares una vez que se cumpla la condición de límite dada.
suelo_por Este operador agrupará los valores provenientes de la fuente observable en función de la función key_mapper dada.
mapa Este operador cambiará cada valor de la fuente observable a un nuevo valor basado en la salida del mapper_func dado.
escanear Este operador aplicará una función de acumulador a los valores provenientes de la fuente observable y devolverá un observable con nuevos valores.

Operadores de filtrado

Los operadores que vamos a discutir en la categoría de operadores de filtrado se dan a continuación:

Mostrar ejemplos

Operador Categoría
rebote Este operador dará los valores de la fuente observables, hasta que pase el intervalo de tiempo dado e ignorará el resto del tiempo.
distinto Este operador dará todos los valores que son distintos de la fuente observable.
element_at Este operador dará un elemento de la fuente observable para el índice dado.
filtrar Este operador filtrará los valores de la fuente observable según la función de predicado dada.
primero Este operador dará el primer elemento de la fuente observable.
ignore_elements Este operador ignorará todos los valores de la fuente observable y solo ejecutará llamadas a funciones de devolución de llamada completas o de error.
último Este operador dará el último elemento observable de la fuente.
omitir Este operador devolverá un observable que omitirá la primera aparición de elementos de recuento tomados como entrada.
skip_last Este operador devolverá un observable que omitirá la última aparición de elementos de recuento tomados como entrada.
tomar Este operador dará una lista de valores fuente en orden continuo según el recuento dado.
take_last Este operador dará una lista de valores fuente en orden continuo desde el último en función del recuento proporcionado.

Operadores de manejo de errores

Los operadores que vamos a discutir en la categoría de operador de manejo de errores son: -

Mostrar ejemplos

Operador Descripción
captura Este operador terminará la fuente observable cuando haya una excepción.
rever Este operador volverá a intentar en la fuente observable cuando haya un error y una vez que se complete el recuento de reintentos, terminará.

Operadores de servicios públicos

Los siguientes son los operadores que vamos a discutir en la categoría de operador de servicios públicos.

Mostrar ejemplos

Operador Descripción
retrasar Este operador retrasará la emisión observable de la fuente según la hora o fecha indicada.
materializar Este operador convertirá los valores de la fuente observable con los valores emitidos en forma de valores de notificación explícitos.
intervalo de tiempo Este operador dará el tiempo transcurrido entre los valores de la fuente observable.
se acabó el tiempo Este operador dará todos los valores de la fuente observables después del tiempo transcurrido o de lo contrario provocará un error.
marca de tiempo Este operador adjuntará una marca de tiempo a todos los valores de la fuente observable.

Operadores condicionales y booleanos

Los operadores que vamos a discutir en la categoría de operador condicional y booleano son los que se indican a continuación:

Mostrar ejemplos

Operador Descripción
todas Este operador comprobará si todos los valores de la fuente observable satisfacen la condición dada.
contiene Este operador devolverá un observable con el valor verdadero o falso si el valor dado está presente y si es el valor de la fuente observable.
default_if_empty Este operador devolverá un valor predeterminado si la fuente observable está vacía.
sequence_equal Este operador comparará dos secuencias de observables o una matriz de valores y devolverá un observable con el valor verdadero o falso.
saltar_hasta Este operador descartará valores de la fuente observable hasta que el segundo observable emita un valor.
saltar_mientras Este operador devolverá un observable con valores de la fuente observable que satisfaga la condición pasada.
tomar_hasta Este operador descartará valores de la fuente observable después de que el segundo observable emita un valor o finalice.
tomar_mientras Este operador descartará los valores de la fuente observables cuando la condición falla.

Operadores conectables

Los operadores que vamos a discutir en la categoría de Operador conectable son:

Mostrar ejemplos

Operador Descripción
publicar Este método convertirá lo observable en un observable conectable.
ref_count Este operador hará que lo observable sea un observable normal.
repetición Este método funciona de manera similar a replaySubject. Este método devolverá los mismos valores, incluso si el observable ya ha emitido y algunos de los suscriptores se retrasan en la suscripción.

Operadores de combinación

Los siguientes son los operadores que vamos a discutir en la categoría Operador de combinación.

Mostrar ejemplos

Operador Descripción
combine_latest Este operador creará una tupla para el observable dado como entrada.
unir Este operador fusionará los observables dados.
Empezar con Este operador tomará los valores dados y agregará al comienzo de la fuente observable y devolverá la secuencia completa.
Código Postal Este operador devuelve un observable con valores en forma de tupla que se forma tomando el primer valor del observable dado y así sucesivamente.