Sintaxe e uso básicos
A sintaxe das funções disponíveis no módulo do operador é bastante direta. Você chama uma função específica que retorna um resultado depois de avaliar argumentos fornecidos a ela. Abaixo está um exemplo que mostra cálculos matemáticos sendo feitos usando várias funções disponíveis no módulo do operador.
operador de importaçãoA primeira declaração importa o módulo do operador. As próximas várias funções disponíveis no módulo do operador como "Add", "sub", "Mul" e "Truediv" são chamadas e dois números são fornecidos a eles argumentos para que as operações matemáticas possam ser executadas nelas. Depois de executar a amostra de código acima, você deve obter a seguinte saída:
11O código acima é equivalente às seguintes declarações em Python:
adição = 5 + 6Na primeira amostra de código, em vez de usar sinais ou símbolos do operador, você está chamando funções para fazer os mesmos cálculos. O módulo do operador inclui muitas outras funções de utilidade. Abaixo está um exemplo que faz comparações entre dois números.
operador de importaçãoNa amostra de código acima, várias funções como "Eq", "LT", "LE", "NE", "GT" e "GE" são chamadas para determinar a igualdade ou a desigualdade de dois números fornecidos como argumentos a essas funções. Depois de executar a amostra de código acima, você deve obter a seguinte saída:
FalsoEsta amostra de código é equivalente às seguintes declarações:
igual = 5 == 6Lista de funções úteis disponíveis no módulo do operador
Abaixo está uma tabela mostrando algumas das funções úteis disponíveis no módulo do operador e suas declarações equivalentes. Esta tabela foi retirada da documentação oficial do Python para o módulo do operador.
Tipo de operação / cálculo | Função chamada | Sintaxe equivalente |
---|---|---|
Adição | Adicionar (a, b) | a + b |
Concatenação | CONCAT (SEQ1, SEQ2) | SEQ1 + SEQ2 |
Teste de contenção | Contém (SEQ, OBJ) | OBJ na seq |
Divisão | Truediv (a, b) | a / b |
Divisão | Floordiv (a, b) | a // b |
Bit nejudado e | e_ (a, b) | A&B |
Bitwise exclusivo ou | xor (a, b) | a ^ b |
Inversão bit -new | Inverter (a) | ~ a |
Bit nejudado ou | ou_ (a, b) | a | b |
Expeneção | Pow (a, b) | a ** b |
Identidade | is_ (a, b) | a é b |
Identidade | is_not (a, b) | a não é B |
Atribuição indexada | setItem (obj, k, v) | obj [k] = v |
Exclusão indexada | Delitem (OBJ, K) | del obj [k] |
Indexação | getItem (obj, k) | obj [k] |
Desvio à esquerda | LSHIFT (A, B) | a < |
Modulo | mod (a, b) | a % b |
Multiplicação | mul (a, b) | a * b |
Multiplicação da matriz | matmul (a, b) | a @ b |
Negação (aritmética) | neg (a) | - a |
Negação (lógica) | não_ (a) | não a |
Positivo | POS (a) | + a |
Deslocamento para a direita | rshift (a, b) | a >> b |
Atribuição de fatia | setItem (seq, slice (i, j), valores) | seq [i: j] = valores |
Exclusão de fatia | Delitem (SEQ, Slice (i, J)) | del seq [i: j] |
Fatiamento | getItem (seq, slice (i, j)) | SEQ [i: J] |
Formatação de string | mod (s, obj) | s % obj |
Subtração | sub (a, b) | a - b |
Teste de verdade | Verdade (OBJ) | obj |
Encomenda | LT (a, b) | a |
Encomenda | le (a, b) | a <= b |
Igualdade | Eq (a, b) | a == b |
Diferença | NE (a, b) | a != b |
Encomenda | ge (a, b) | a> = b |
Encomenda | gt (a, b) | a> b |
Você pode consultar esta tabela para encontrar uma função de operador apropriada adequada para seus requisitos de programação.
Funções do operador no local de estar
O módulo do operador também inclui um conjunto limitado de funções que podem executar cálculos "no local". Isso é feito modificando o próprio objeto, passando -o como um argumento para uma função do operador. Tais nomes de funções são prefixados com o personagem "i". Por exemplo, para modificar um objeto no local e adicionar algo a ele, você terá que usar a função “IADD” disponível no módulo do operador. Essas funções são especialmente úteis para objetos mutáveis, como dicionários e listas Python. Abaixo está uma amostra de código:
operador de importaçãoAqui a função “IADD” foi usada para concatenar dois objetos do tipo de lista em Python. A lista que será modificada no local é fornecida como o primeiro argumento, seguido pela lista a ser unida. Depois de executar a amostra de código acima, você deve obter a seguinte saída:
[1, 2, 3, 4, 5, 6, 7, 8]Lista completa de funções no local disponível no módulo do operador pode ser encontrado aqui.
Usando a função ItemGetter
Você pode usar a função "ItemGetter" disponível no módulo do operador para escolher itens de uma lista. Abaixo está um exemplo básico:
operador de importaçãoO método Itemgetter recebe um item pelo seu índice e é especialmente útil para pegar vários itens de uma só vez. A segunda declaração mostra o uso da função Itemgetter, onde os índices de dois itens são fornecidos como argumentos. A função Itemgetter retorna um objeto chamável, que é chamado, fornecendo -lhe uma lista de Python como um argumento. O resultado final da segunda e terceira declaração é o mesmo. Depois de executar a amostra de código acima, você deve obter a seguinte saída:
('B', 'C')As múltiplas chamadas acorrentadas à função Itemgetter também podem ser escritas da seguinte forma:
operador de importaçãoA função Itemgetter também pode ser usada como uma chave ao classificar uma lista aninhada contendo outras listas ou tuplas. Aqui está um exemplo:
operador de importaçãoO argumento "chave" na função de classificação leva um objeto chamável. Este objeto chamável é executado em cada elemento da lista antes de fazer qualquer comparação para os fins de classificação. Ao fornecer a função Itemgetter de chamada como chave, você está dizendo a função de classificação para pegar um item no índice “1” de cada lista aninhada e usá -lo para fins de comparação. Depois de executar a amostra de código acima, você deve obter a seguinte saída:
[['c', 1], ['a', 2], ['b', 4], ['d', 5]]Conclusão
O módulo do operador não traz nada de novo para a tabela, pois usa símbolos do operador embaixo para executar cálculos. Você pode muito bem escrever declarações simples usando símbolos do operador. No entanto, eles são úteis em cenários em que você deseja executar programaticamente cálculos chamando funções, aprova funções chamáveis como argumentos e substitua declarações lambda por algo mais simples.