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 | Этот оператор примет заданные значения и добавит в начало наблюдаемого источника возврата полную последовательность. |
| застегивать | Этот оператор возвращает наблюдаемое со значениями в форме кортежа, который формируется путем взятия первого значения данного наблюдаемого и так далее. |