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
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: -
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 -
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 -
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: -
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.
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 -
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 -
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.
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. |