RxPY - Операторы

В этой главе подробно рассказывается об операторах в RxPY. Эти операторы включают в себя -

  • Работа с операторами
  • Математические операторы
  • Операторы преобразования
  • Операторы фильтрации
  • Операторы обработки ошибок
  • Коммунальные операторы
  • Условные операторы
  • Операторы создания
  • Подключаемые операторы
  • Объединение операторов

Реактивный (Rx) python имеет почти множество операторов, которые упрощают жизнь с кодированием на python. Вы можете использовать эти несколько операторов вместе, например, при работе со строками вы можете использовать операторы map, filter, merge.

Работа с операторами

Вы можете работать с несколькими операторами вместе, используя метод pipe (). Этот метод позволяет объединить несколько операторов в цепочку.

Вот рабочий пример использования операторов -

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

В приведенном выше примере мы создали наблюдаемое, используя метод of (), который принимает значения 1, 2 и 3. Теперь на этом наблюдаемом вы можете выполнить другую операцию, используя любое количество операторов, используя метод 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 Этот оператор принимает два или более наблюдаемых объекта и получает одну наблюдаемую со всеми значениями в последовательности.
считать

Этот оператор принимает Observable со значениями и преобразует его в Observable, который будет иметь одно значение. Функция count принимает функцию предиката в качестве необязательного аргумента.

Функция имеет логический тип и будет добавлять значение к выходным данным только в том случае, если она удовлетворяет условию.

Максимум Этот оператор предоставит наблюдаемое с максимальным значением из наблюдаемого источника.
мин Этот оператор даст наблюдаемое с минимальным значением из исходного наблюдаемого.
уменьшить Этот оператор принимает функцию, называемую функцией накопителя, которая используется для значений, поступающих из наблюдаемого источника, и возвращает накопленные значения в форме наблюдаемого объекта с необязательным начальным значением, переданным в функцию накопителя.
сумма Этот оператор вернет наблюдаемое с суммой всех значений из исходных наблюдаемых.

Операторы преобразования

Операторы, которые мы собираемся обсудить в категории операторов преобразования, упомянуты ниже -

Показать примеры

Оператор Категория
буфер Этот оператор будет собирать все значения из наблюдаемого источника и выдавать их через равные промежутки времени, как только заданное граничное условие выполнено.
Ground_by Этот оператор группирует значения, поступающие из наблюдаемого источника, на основе заданной функции key_mapper.
карта Этот оператор изменит каждое значение из наблюдаемого источника на новое значение на основе выходных данных mapper_func.
сканировать Этот оператор применит функцию аккумулятора к значениям, поступающим из исходного наблюдаемого объекта, и вернет наблюдаемый объект с новыми значениями.

Операторы фильтрации

Операторы, которые мы собираемся обсудить в категории операторов фильтрации, приведены ниже -

Показать примеры

Оператор Категория
дебонсировать Этот оператор будет давать значения из наблюдаемого источника до заданного промежутка времени и игнорировать остальное время.
отчетливый Этот оператор выдаст все значения, отличные от наблюдаемого источника.
element_at Этот оператор предоставит элемент из источника, наблюдаемый для данного индекса.
фильтр Этот оператор будет фильтровать значения из наблюдаемого источника на основе заданной функции предиката.
первый Этот оператор предоставит первый элемент наблюдаемого источника.
ignore_elements Этот оператор игнорирует все значения из наблюдаемого источника и выполняет только вызовы функций обратного вызова для завершения или ошибки.
последний Этот оператор предоставит последний элемент наблюдаемого источника.
пропускать Этот оператор вернет наблюдаемое, которое пропустит первое вхождение элементов count, взятых в качестве входных.
skip_last Этот оператор вернет наблюдаемое, которое пропустит последнее вхождение элементов count, взятых в качестве входных.
взять Этот оператор предоставит список исходных значений в непрерывном порядке на основе заданного количества.
take_last Этот оператор выдаст список исходных значений в непрерывном порядке, начиная с последнего, на основе заданного количества.

Операторы обработки ошибок

В категории «Операторы обработки ошибок» мы собираемся обсудить следующие операторы:

Показать примеры

Оператор Описание
поймать Этот оператор завершит наблюдаемый источник при возникновении исключения.
повторить попытку Этот оператор будет повторять попытку для наблюдаемого источника при возникновении ошибки, и после того, как счетчик повторных попыток завершится, он прекратится.

Коммунальные операторы

Ниже приведены операторы, которые мы собираемся обсудить в категории операторов служебных программ.

Показать примеры

Оператор Описание
задержка Этот оператор будет задерживать наблюдаемый источник излучения в соответствии с указанным временем или датой.
материализоваться Этот оператор преобразует значения из наблюдаемого источника в значения, передаваемые в виде явных значений уведомления.
интервал времени Этот оператор даст время, прошедшее между значениями наблюдаемого источника.
тайм-аут Этот оператор выдаст все значения из наблюдаемого источника по истечении истекшего времени, иначе вызовет ошибку.
отметка времени Этот оператор прикрепит метку времени ко всем значениям наблюдаемого источника.

Условные и логические операторы

Операторы, которые мы собираемся обсудить в категории условных и логических операторов, приведены ниже:

Показать примеры

Оператор Описание
все Этот оператор проверяет, все ли значения из наблюдаемого источника удовлетворяют заданному условию.
содержит Этот оператор вернет наблюдаемое со значением true или false, если данное значение присутствует и является значением наблюдаемого источника.
default_if_empty Этот оператор вернет значение по умолчанию, если наблюдаемый источник пуст.
sequence_equal Этот оператор сравнивает две последовательности наблюдаемых или массив значений и возвращает наблюдаемое со значением true или false.
skip_until Этот оператор будет отбрасывать значения из исходного наблюдаемого до тех пор, пока второй наблюдаемый не выдаст значение.
skip_ while Этот оператор вернет наблюдаемое со значениями из исходного наблюдаемого, которое удовлетворяет переданному условию.
take_until Этот оператор отбрасывает значения из исходного наблюдаемого объекта после того, как второй наблюдаемый объект испускает значение или завершается.
взять_ пока Этот оператор отбрасывает значения из наблюдаемого источника, когда условие не выполняется.

Подключаемые операторы

Операторы, которые мы собираемся обсудить в категории подключаемых операторов:

Показать примеры

Оператор Описание
публиковать Этот метод преобразует наблюдаемое в подключаемое наблюдаемое.
ref_count Этот оператор сделает наблюдаемое обычным наблюдаемым.
переиграть Этот метод работает аналогично replaySubject. Этот метод вернет те же значения, даже если наблюдаемый объект уже сгенерирован, а некоторые подписчики опоздали с подпиской.

Объединение операторов

Ниже перечислены операторы, которые мы собираемся обсудить в категории «Комбинирующие операторы».

Показать примеры

Оператор Описание
Combine_latest Этот оператор создаст кортеж для наблюдаемого, заданного на входе.
слияние Этот оператор объединит данные наблюдаемые.
start_with Этот оператор примет заданные значения и добавит в начало наблюдаемого источника возврата полную последовательность.
застегивать Этот оператор возвращает наблюдаемое со значениями в форме кортежа, который формируется путем взятия первого значения данного наблюдаемого и так далее.