RxPY - Opérateurs

Ce chapitre explique en détail les opérateurs dans RxPY. Ces opérateurs comprennent -

  • Travailler avec les opérateurs
  • Opérateurs mathématiques
  • Opérateurs de transformation
  • Opérateurs de filtrage
  • Opérateurs de gestion des erreurs
  • Opérateurs de services publics
  • Opérateurs conditionnels
  • Opérateurs de création
  • Opérateurs connectables
  • Combinaison d'opérateurs

Le python réactif (Rx) a presque beaucoup d'opérateurs, qui facilitent la vie avec le codage python. Vous pouvez utiliser ces multiples opérateurs ensemble, par exemple, lorsque vous travaillez avec des chaînes, vous pouvez utiliser des opérateurs de mappage, de filtre et de fusion.

Travailler avec les opérateurs

Vous pouvez travailler avec plusieurs opérateurs ensemble en utilisant la méthode pipe (). Cette méthode permet de chaîner plusieurs opérateurs ensemble.

Voici un exemple pratique d'utilisation d'opérateurs -

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

Dans l'exemple ci-dessus, nous avons créé une méthode observable en utilisant of () qui prend les valeurs 1, 2 et 3. Maintenant, sur cette observable, vous pouvez effectuer une opération différente, en utilisant n'importe quel nombre d'opérateurs en utilisant la méthode pipe () comme indiqué au dessus de. L'exécution des opérateurs se poursuivra séquentiellement sur l'observable donnée.

Pour travailler avec des opérateurs, importez-le d'abord comme indiqué ci-dessous -

from rx import of, operators as op

Voici un exemple de travail -

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

Dans l'exemple ci-dessus, il existe une liste de nombres, à partir de laquelle nous filtrons les nombres pairs à l'aide d'un opérateur de filtre et l'ajoutons plus tard à l'aide d'un opérateur de réduction.

Output

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

Voici une liste d'opérateurs, dont nous allons discuter -

  • Créer des observables
  • Opérateurs mathématiques
  • Opérateurs de transformation
  • Opérateurs de filtrage
  • Opérateurs de gestion des erreurs
  • Opérateurs de services publics
  • Conditional
  • Connectable
  • Combinaison d'opérateurs

Créer des observables

Voici les observables, nous allons discuter dans la catégorie Création

Afficher des exemples

Observable La description
créer Cette méthode est utilisée pour créer un observable.
vide Cette observable ne sortira rien et émettra directement l'état complet.
jamais Cette méthode crée un observable qui n'atteindra jamais l'état complet.
jeter Cette méthode créera un observable qui générera une erreur.
de_ Cette méthode convertira le tableau ou l'objet donné en observable.
intervalle Cette méthode donnera une série de valeurs produites après un timeout.
juste Cette méthode convertira une valeur donnée en observable.
intervalle Cette méthode donnera une plage d'entiers en fonction de l'entrée donnée.
repeat_value Cette méthode créera une observable qui répétera la valeur donnée selon le nombre donné.
début Cette méthode prend une fonction en tant qu'entrée et renvoie une observable qui retournera une valeur à partir de la fonction d'entrée.
minuteur Cette méthode émettra les valeurs dans l'ordre après l'expiration du délai.

Opérateurs mathématiques

Les opérateurs que nous allons discuter dans la catégorie Opérateurs mathématiques sont les suivants: -

Afficher des exemples

Opérateur La description
moyenne Cet opérateur calculera la moyenne à partir de la source observable donnée et produira une observable qui aura la valeur moyenne.
concat Cet opérateur prendra deux ou plusieurs observables et donne une seule observable avec toutes les valeurs de la séquence.
compter

Cet opérateur prend un Observable avec des valeurs et le convertit en un Observable qui aura une valeur unique. La fonction de comptage prend la fonction de prédicat comme argument facultatif.

La fonction est de type booléen et ajoutera de la valeur à la sortie uniquement si elle remplit la condition.

max Cet opérateur donnera une observable avec une valeur maximale à partir de l'observable source.
min Cet opérateur donnera une observable avec une valeur min à partir de l'observable source.
réduire Cet opérateur prend dans une fonction appelée fonction d'accumulateur qui est utilisée sur les valeurs provenant de l'observable source, et il retourne les valeurs accumulées sous la forme d'une observable, avec une valeur de départ optionnelle passée à la fonction d'accumulation.
somme Cet opérateur renverra une observable avec la somme de toutes les valeurs des observables source.

Opérateurs de transformation

Les opérateurs dont nous allons parler dans la catégorie Opérateurs de transformation sont mentionnés ci-dessous -

Afficher des exemples

Opérateur Catégorie
tampon Cet opérateur collectera toutes les valeurs de l'observable source, et les émettra à intervalles réguliers une fois la condition aux limites donnée satisfaite.
ground_by Cet opérateur regroupera les valeurs provenant de l'observable source en fonction de la fonction key_mapper donnée.
carte Cet opérateur changera chaque valeur de la source observable en une nouvelle valeur basée sur la sortie du mapper_func donné.
analyse Cet opérateur appliquera une fonction d'accumulation aux valeurs provenant de l'observable source et retournera une observable avec de nouvelles valeurs.

Opérateurs de filtrage

Les opérateurs que nous allons discuter dans la catégorie des opérateurs de filtrage sont donnés ci-dessous -

Afficher des exemples

Opérateur Catégorie
rebondir Cet opérateur donnera les valeurs de la source observable, jusqu'à ce que la période donnée et ignore le reste du temps.
distinct Cet opérateur donnera toutes les valeurs distinctes de l'observable source.
element_at Cet opérateur donnera un élément de la source observable pour l'index donné.
filtre Cet opérateur filtrera les valeurs de l'observable source en fonction de la fonction de prédicat donnée.
première Cet opérateur donnera le premier élément de la source observable.
ignore_elements Cet opérateur ignorera toutes les valeurs de l'observable source et n'exécutera que les appels aux fonctions de rappel complètes ou d'erreur.
dernier Cet opérateur donnera le dernier élément de la source observable.
sauter Cet opérateur rendra une observable qui sautera la première occurrence des éléments de comptage pris en entrée.
skip_last Cet opérateur rendra une observable qui sautera la dernière occurrence des éléments de comptage pris en entrée.
prendre Cet opérateur donnera une liste de valeurs source dans un ordre continu basé sur le nombre donné.
take_last Cet opérateur donnera une liste de valeurs source dans l'ordre continu du dernier en fonction du nombre donné.

Opérateurs de gestion des erreurs

Les opérateurs dont nous allons parler dans la catégorie Opérateur de gestion des erreurs sont: -

Afficher des exemples

Opérateur La description
capture Cet opérateur mettra fin à l'observable source lorsqu'il y a une exception.
retenter Cet opérateur réessayera sur l'observable source en cas d'erreur et une fois le nombre de tentatives terminé, il se terminera.

Opérateurs de services publics

Voici les opérateurs dont nous allons parler dans la catégorie Opérateur de services publics.

Afficher des exemples

Opérateur La description
retard Cet opérateur retardera l'émission observable de la source selon l'heure ou la date indiquée.
se concrétiser Cet opérateur convertira les valeurs de la source observable avec les valeurs émises sous forme de valeurs de notification explicites.
intervalle de temps Cet opérateur donnera le temps écoulé entre les valeurs de la source observable.
temps libre Cet opérateur donnera toutes les valeurs de la source observables après le temps écoulé ou bien déclenchera une erreur.
horodatage Cet opérateur attachera un horodatage à toutes les valeurs de l'observable source.

Opérateurs conditionnels et booléens

Les opérateurs que nous allons discuter dans la catégorie Opérateur conditionnel et booléen sont indiqués ci-dessous -

Afficher des exemples

Opérateur La description
tout Cet opérateur vérifiera si toutes les valeurs de l'observable source satisfont à la condition donnée.
contient Cet opérateur renverra une observable avec la valeur true ou false si la valeur donnée est présente et si c'est la valeur de l'observable source.
default_if_empty Cet opérateur renverra une valeur par défaut si l'observable source est vide.
sequence_equal Cet opérateur comparera deux séquences d'observables ou un tableau de valeurs et retournera une observable avec la valeur true ou false.
skip_until Cet opérateur rejettera les valeurs de l'observable source jusqu'à ce que la seconde observable émette une valeur.
skip_ while Cet opérateur renverra une observable avec des valeurs de l'observable source qui satisfait la condition passée.
take_until Cet opérateur rejettera les valeurs de l'observable source après que la seconde observable ait émis une valeur ou soit terminée.
prendre_maintenant Cet opérateur rejettera les valeurs de la source observable lorsque la condition échoue.

Opérateurs connectables

Les opérateurs dont nous allons parler dans la catégorie des opérateurs connectables sont -

Afficher des exemples

Opérateur La description
publier Cette méthode convertira l'observable en observable connectable.
ref_count Cet opérateur fera de l'observable un observable normal.
rejouer Cette méthode fonctionne de manière similaire à replaySubject. Cette méthode retournera les mêmes valeurs, même si l'observable a déjà émis et que certains des abonnés sont en retard dans l'abonnement.

Combinaison d'opérateurs

Voici les opérateurs dont nous allons parler dans la catégorie Opérateur de combinaison.

Afficher des exemples

Opérateur La description
combine_latest Cet opérateur créera un tuple pour l'observable donnée en entrée.
fusionner Cet opérateur fusionnera des observables données.
Commencer avec Cet opérateur prendra les valeurs données et ajoutera au début de l'observable source renvoyer la séquence complète.
Zip *: français Cet opérateur renvoie une observable avec des valeurs sous forme de tuple qui est formée en prenant la première valeur de l'observable donnée et ainsi de suite.