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