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