RxPY-演算子

この章では、RxPYの演算子について詳しく説明します。これらの演算子には次のものが含まれます-

  • オペレーターとの協力
  • 数学演算子
  • 変換演算子
  • フィルタリング演算子
  • エラー処理演算子
  • ユーティリティオペレーター
  • 条件付き演算子
  • 生成演算子
  • 接続可能なオペレーター
  • 演算子の組み合わせ

リアクティブ(Rx)pythonにはほとんど多くの演算子があり、Pythonコーディングで簡単に作業できます。これらの複数の演算子を一緒に使用できます。たとえば、文字列を操作するときに、マップ、フィルター、マージ演算子を使用できます。

オペレーターとの協力

pipe()メソッドを使用して、複数の演算子を一緒に操作できます。この方法では、複数の演算子をチェーン化できます。

これは、演算子を使用する実際の例です-

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

上記の例では、値1、2、および3を受け取るobservable using of()メソッドを作成しました。これで、このobservableで、示されているように、pipe()メソッドを使用して任意の数の演算子を使用して別の操作を実行できます。上記。演算子の実行は、指定されたオブザーバブルで順番に実行されます。

演算子を操作するには、最初に以下に示すようにインポートします-

from rx import of, operators as op

ここに、実際の例があります-

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

上記の例では、数値のリストがあり、そこからフィルター演算子を使用して偶数をフィルタリングし、後でリデュース演算子を使用してそれを追加しています。

Output

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

これが私たちが議論しようとしている演算子のリストです-

  • オブザーバブルの作成
  • 数学演算子
  • 変換演算子
  • フィルタリング演算子
  • エラー処理演算子
  • ユーティリティオペレーター
  • Conditional
  • Connectable
  • 演算子の組み合わせ

オブザーバブルの作成

以下はオブザーバブルです。作成カテゴリで説明します。

例を表示

観察可能 説明
作成する このメソッドは、オブザーバブルを作成するために使用されます。
空の このオブザーバブルは何も出力せず、完全な状態を直接放出します。
決して このメソッドは、完全な状態に達することのないオブザーバブルを作成します。
スロー このメソッドは、エラーをスローするオブザーバブルを作成します。
から_ このメソッドは、指定された配列またはオブジェクトをオブザーバブルに変換します。
間隔 このメソッドは、タイムアウト後に生成された一連の値を提供します。
ただ このメソッドは、指定された値をオブザーバブルに変換します。
範囲 このメソッドは、与えられた入力に基づいて整数の範囲を与えます。
repeat_value このメソッドは、カウントが指定されたとおりに指定された値を繰り返すオブザーバブルを作成します。
開始 このメソッドは、関数を入力として受け取り、入力関数から値を返すオブザーバブルを返します。
タイマー このメソッドは、タイムアウトが完了した後、値を順番に出力します。

数学演算子

数学演算子のカテゴリで説明する演算子は次のとおりです。

例を表示

オペレーター 説明
平均 この演算子は、指定されたソースオブザーバブルから平均を計算し、平均値を持つオブザーバブルを出力します。
concat この演算子は、2つ以上のオブザーバブルを取り込み、シーケンス内のすべての値を含む1つのオブザーバブルを指定します。
カウント

この演算子は、値を持つObservableを取り込み、それを単一の値を持つObservableに変換します。count関数は、オプションの引数として述語関数を取ります。

この関数はブール型であり、条件を満たす場合にのみ出力に値を追加します。

最大 この演算子は、ソースオブザーバブルからの最大値を持つオブザーバブルを提供します。
この演算子は、ソースオブザーバブルからの最小値でオブザーバブルを提供します。
減らす この演算子は、ソースobservableからの値に使用されるアキュムレータ関数と呼ばれる関数を取り込んで、アキュムレータ関数に渡されるオプションのシード値とともに、累積値をobservableの形式で返します。
この演算子は、ソースオブザーバブルからのすべての値の合計を含むオブザーバブルを返します。

変換演算子

変換演算子のカテゴリで説明する演算子は、以下のとおりです。

例を表示

オペレーター カテゴリー
バッファ この演算子は、監視可能なソースからすべての値を収集し、指定された境界条件が満たされると、定期的にそれらを出力します。
Ground_by この演算子は、指定されたkey_mapper関数に基づいて、監視可能なソースからの値をグループ化します。
地図 この演算子は、指定されたmapper_funcの出力に基づいて、監視可能なソースからの各値を新しい値に変更します。
スキャン この演算子は、ソースobservableからの値にアキュムレータ関数を適用し、新しい値でobservableを返します。

フィルタリング演算子

フィルタリング演算子カテゴリで説明する演算子を以下に示します-

例を表示

オペレーター カテゴリー
デバウンス この演算子は、指定されたタイムスパンまで、ソースからの値を監視可能に指定し、残りの時間は無視します。
明確な この演算子は、観測可能なソースとは異なるすべての値を提供します。
element_at この演算子は、指定されたインデックスに対して監視可能なソースからの要素を提供します。
フィルタ この演算子は、指定された述語関数に基づいて、監視可能なソースから値をフィルタリングします。
最初 この演算子は、ソースからの最初の要素を監視可能にします。
ignore_elements この演算子は、ソースobservableからのすべての値を無視し、コールバック関数を完了するかエラーにするための呼び出しのみを実行します。
最終 この演算子は、ソースからの最後の要素を監視可能にします。
スキップ この演算子は、入力として取得されたカウント項目の最初の出現をスキップするオブザーバブルを返します。
skip_last この演算子は、入力として取得されたカウント項目の最後の出現をスキップするオブザーバブルを返します。
取る この演算子は、指定されたカウントに基づいて、連続した順序でソース値のリストを提供します。
take_last この演算子は、指定されたカウントに基づいて、最後から連続した順序でソース値のリストを提供します。

エラー処理演算子

エラー処理演算子のカテゴリで説明する演算子は次のとおりです。

例を表示

オペレーター 説明
キャッチ この演算子は、例外が発生したときに監視可能なソースを終了します。
リトライ このオペレーターは、エラーが発生したときに監視可能なソースで再試行し、再試行カウントが完了すると終了します。

ユーティリティオペレーター

以下は、ユーティリティ演算子のカテゴリで説明する演算子です。

例を表示

オペレーター 説明
ディレイ このオペレーターは、指定された時間または日付に従って、発生源の観測可能な放出を遅らせます。
マテリアライズ この演算子は、明示的な通知値の形式で発行された値を使用して、監視可能なソースからの値を変換します。
時間間隔 この演算子は、観測可能なソースからの値の間の経過時間を示します。
タイムアウト この演算子は、経過時間後に監視可能なソースからのすべての値を提供します。そうでない場合、エラーがトリガーされます。
タイムスタンプ この演算子は、ソースの監視可能なすべての値にタイムスタンプを添付します。

条件演算子とブール演算子

条件演算子とブール演算子のカテゴリで説明する演算子は、次のとおりです。

例を表示

オペレーター 説明
すべて この演算子は、ソースオブザーバブルからのすべての値が指定された条件を満たすかどうかを確認します。
含まれています この演算子は、指定された値が存在し、それがソースのオブザーバブルの値である場合、値がtrueまたはfalseのオブザーバブルを返します。
default_if_empty ソースオブザーバブルが空の場合、この演算子はデフォルト値を返します。
sequence_equal この演算子は、オブザーバブルの2つのシーケンスまたは値の配列を比較し、値がtrueまたはfalseのオブザーバブルを返します。
skip_until この演算子は、2番目のオブザーバブルが値を発行するまで、ソースオブザーバブルから値を破棄します。
skip_while この演算子は、渡された条件を満たすソースオブザーバブルからの値を持つオブザーバブルを返します。
take_until この演算子は、2番目のオブザーバブルが値を発行するか終了した後、ソースオブザーバブルから値を破棄します。
take_while この演算子は、条件が失敗したときに監視可能なソースから値を破棄します。

接続可能な演算子

接続可能な演算子のカテゴリで説明する演算子は次のとおりです。

例を表示

オペレーター 説明
公開する このメソッドは、オブザーバブルを接続可能なオブザーバブルに変換します。
ref_count この演算子は、オブザーバブルを通常のオブザーバブルにします。
リプレイ このメソッドは、replaySubjectと同様に機能します。このメソッドは、オブザーバブルがすでに発行されていて、一部のサブスクライバーがサブスクライブに遅れている場合でも、同じ値を返します。

演算子の組み合わせ

以下は、結合演算子カテゴリで説明する演算子です。

例を表示

オペレーター 説明
Combine_latest この演算子は、入力として指定されたオブザーバブルのタプルを作成します。
マージ この演算子は、指定されたオブザーバブルをマージします。
皮切りに この演算子は、指定された値を取り込んで、ソースの開始時に監視可能なリターンを追加して完全なシーケンスを返します。
zip この演算子は、指定されたオブザーバブルの最初の値を取得することによって形成されるタプル形式の値を持つオブザーバブルを返します。