RxPY - Operadores
Este capítulo explica sobre os operadores em RxPY em detalhes. Esses operadores incluem -
- Trabalhando com Operadores
- Operadores matemáticos
- Operadores de transformação
- Operadores de filtragem
- Operadores de tratamento de erros
- Operadores de serviços públicos
- Operadores condicionais
- Operadores de criação
- Operadores conectáveis
- Combinando operadores
O python reativo (Rx) tem quase muitos operadores, que facilitam a vida com a codificação do python. Você pode usar esses vários operadores juntos, por exemplo, ao trabalhar com strings, você pode usar mapear, filtrar e operadores de mesclagem.
Trabalhando com Operadores
Você pode trabalhar com vários operadores juntos usando o método pipe (). Este método permite encadear vários operadores juntos.
Aqui está um exemplo prático do uso de operadores -
test = of(1,2,3) // an observable
subscriber = test.pipe(
op1(),
op2(),
op3()
)
No exemplo acima, criamos um método observável of () que leva os valores 1, 2 e 3. Agora, neste observável, você pode realizar uma operação diferente, usando qualquer número de operadores usando o método pipe (), conforme mostrado acima. A execução dos operadores continuará sequencialmente no observável dado.
Para trabalhar com operadores, primeiro importe-o conforme mostrado abaixo -
from rx import of, operators as op
Aqui está um exemplo prático -
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)))
No exemplo acima, há uma lista de números, da qual estamos filtrando números pares usando um operador de filtro e, posteriormente, adicionando-o usando um operador de redução.
Output
E:\pyrx>python testrx.py
Sum of Even numbers is 30
Aqui está uma lista de operadores, que vamos discutir -
- Criação de observáveis
- Operadores matemáticos
- Operadores de transformação
- Operadores de filtragem
- Operadores de tratamento de erros
- Operadores de serviços públicos
- Conditional
- Connectable
- Combinando operadores
Criação de observáveis
A seguir estão os observáveis, vamos discutir na categoria Criação
Mostrar exemplos
| Observável | Descrição |
|---|---|
| crio | Este método é usado para criar um observável. |
| vazio | Este observável não produzirá nada e emitirá diretamente o estado completo. |
| Nunca | Este método cria um observável que nunca alcançará o estado completo. |
| lançar | Este método criará um observável que gerará um erro. |
| de_ | Este método converterá a matriz ou objeto fornecido em um observável. |
| intervalo | Este método fornecerá uma série de valores produzidos após um tempo limite. |
| somente | Este método converterá determinado valor em um observável. |
| alcance | Este método fornecerá um intervalo de inteiros com base na entrada fornecida. |
| repeat_value | Este método criará um observável que repetirá o valor fornecido de acordo com a contagem fornecida. |
| começar | Este método recebe uma função como entrada e retorna um valor observável que retornará o valor da função de entrada. |
| cronômetro | Este método emitirá os valores em sequência após o tempo limite terminar. |
Operadores matemáticos
Os operadores que vamos discutir na categoria de operadores matemáticos são os seguintes: -
Mostrar exemplos
| Operador | Descrição |
|---|---|
| média | Este operador irá calcular a média a partir da fonte observável dada e produzir um observável que terá o valor médio. |
| concat | Esse operador pegará dois ou mais observáveis e receberá um único observável com todos os valores na sequência. |
| contagem | Este operador obtém um Observable com valores e o converte em um Observable que terá um único valor. A função de contagem assume a função de predicado como um argumento opcional. A função é do tipo booleano e adicionará valor à saída somente se atender à condição. |
| max | Este operador fornecerá um observável com valor máximo da fonte observável. |
| min | Este operador fornecerá um valor observável com valor mínimo da fonte observável. |
| reduzir | Este operador assume uma função chamada função acumuladora que é usada nos valores vindos da fonte observável e retorna os valores acumulados na forma de um observável, com um valor semente opcional passado para a função acumuladora. |
| soma | Este operador retornará um observável com a soma de todos os valores dos observáveis de origem. |
Operadores de transformação
Os operadores que vamos discutir na categoria Operador de transformação são mencionados abaixo -
Mostrar exemplos
| Operador | Categoria |
|---|---|
| amortecedor | Esse operador coletará todos os valores da fonte observável e os emitirá em intervalos regulares assim que a condição de limite fornecida for satisfeita. |
| ground_by | Este operador agrupará os valores provenientes da fonte observável com base na função key_mapper fornecida. |
| mapa | Este operador irá alterar cada valor da fonte observável em um novo valor com base na saída do mapper_func fornecido. |
| Varredura | Este operador aplicará uma função de acumulador aos valores provenientes da fonte observável e retornará um observável com novos valores. |
Operadores de filtragem
Os operadores que discutiremos na categoria de operador de filtragem são fornecidos abaixo -
Mostrar exemplos
| Operador | Categoria |
|---|---|
| debounce | Este operador fornecerá os valores da fonte observável, até que o intervalo de tempo fornecido e ignore o restante do tempo. |
| distinto | Este operador fornecerá todos os valores que são distintos da fonte observável. |
| element_at | Este operador fornecerá um elemento da fonte observável para o índice fornecido. |
| filtro | Este operador filtrará os valores da fonte observável com base na função de predicado fornecida. |
| primeiro | Este operador fornecerá o primeiro elemento da fonte observável. |
| ignore_elements | Este operador irá ignorar todos os valores observáveis de origem e apenas executará chamadas para funções de callback completas ou com erro. |
| último | Este operador fornecerá o último elemento da fonte observável. |
| pular | Este operador retornará um observável que ignorará a primeira ocorrência de itens de contagem tomados como entrada. |
| skip_last | Este operador retornará um observável que irá ignorar a última ocorrência de itens de contagem tomados como entrada. |
| levar | Este operador fornecerá uma lista de valores de origem em ordem contínua com base na contagem fornecida. |
| take_last | Este operador fornecerá uma lista de valores de origem em ordem contínua a partir do último com base na contagem fornecida. |
Operadores de tratamento de erros
Os operadores que vamos discutir na categoria Operador de tratamento de erros são: -
Mostrar exemplos
| Operador | Descrição |
|---|---|
| pegar | Este operador encerrará a fonte observável quando houver uma exceção. |
| tentar novamente | Este operador tentará novamente na fonte observável quando houver um erro e, assim que a contagem de novas tentativas for concluída, ela será encerrada. |
Operadores de serviços públicos
A seguir estão os operadores que discutiremos na categoria Operador de serviços públicos.
Mostrar exemplos
| Operador | Descrição |
|---|---|
| demora | Este operador irá atrasar a emissão observável da fonte de acordo com a hora ou data fornecida. |
| materializar | Este operador converterá os valores da fonte observável com os valores emitidos na forma de valores de notificação explícitos. |
| intervalo de tempo | Este operador dará o tempo decorrido entre os valores da fonte observável. |
| tempo esgotado | Este operador fornecerá todos os valores da fonte observáveis após o tempo decorrido ou então irá disparar um erro. |
| timestamp | Este operador anexará um carimbo de data / hora a todos os valores do observável de origem. |
Operadores condicionais e booleanos
Os operadores que vamos discutir na categoria Operador condicional e booleano são os indicados abaixo -
Mostrar exemplos
| Operador | Descrição |
|---|---|
| todos | Este operador verificará se todos os valores da fonte observável satisfazem a condição fornecida. |
| contém | Este operador retornará um observável com o valor verdadeiro ou falso se o valor fornecido estiver presente e se for o valor da fonte observável. |
| default_if_empty | Este operador retornará um valor padrão se a fonte observável estiver vazia. |
| sequência_equal | Este operador irá comparar duas sequências de observáveis ou uma matriz de valores e retornar um observável com o valor verdadeiro ou falso. |
| skip_until | Este operador descartará os valores da fonte observável até que o segundo observável emita um valor. |
| skip_while | Este operador retornará um observável com valores do observável de origem que satisfaça a condição passada. |
| pegue_até | Este operador descartará os valores da fonte observável após o segundo observável emitir um valor ou ser encerrado. |
| take_while | Este operador descartará os valores da fonte observáveis quando a condição falhar. |
Operadores conectáveis
Os operadores que vamos discutir na categoria Operador conectável são -
Mostrar exemplos
| Operador | Descrição |
|---|---|
| publicar | Este método converterá o observável em um observável conectável. |
| ref_count | Este operador tornará o observável um observável normal. |
| repetir | Este método funciona de forma semelhante ao replaySubject. Este método retornará os mesmos valores, mesmo se o observável já tiver sido emitido e alguns dos assinantes estiverem atrasados na assinatura. |
Operadores de combinação
A seguir estão os operadores que discutiremos na categoria de operador de combinação.
Mostrar exemplos
| Operador | Descrição |
|---|---|
| combinar o último | Este operador criará uma tupla para o observável dado como entrada. |
| fundir | Este operador irá mesclar dados observáveis. |
| começar com | Este operador pegará os valores fornecidos e adicionará no início do retorno observável de origem a sequência completa. |
| fecho eclair | Este operador retorna um observável com valores em uma forma de tupla, que é formado tomando o primeiro valor do observável fornecido e assim por diante. |