Você está aqui: Python ::: Dicas & Truques ::: Sobrecarga de Operadores |
Como sobrecarregar o operador de adição em Python para efetuar a soma de fraçõesQuantidade de visualizações: 1204 vezes |
A sobrecarga de operadores em Python é muito útil quando precisamos estender a funcionalidade dos operadores fornecidos pela linguagem. Nesta dica abordarei a sobrecarga do operador de soma ("+") para mostrar como podemos criar uma classe Fração e usar a sobrecarga de operador para efetuar a soma de dois termos, ou seja, de dois objetos da classe Fração. Sabemos que o operador de adição ("+") é usado em Python para somar dos valores numéricos e também para concatenar strings. Para estender este operador para classes, ou seja, dar um significado diferente a ele, podemos usar a função mágica __add__(self, other), na qual self se refere à instância atual e other se refere à instância cujos dados queremos "somar" com os dados da instância atual. Veja um trecho de código completo contendo a classe Fracao e o método main() para testes. Note que fazemos a soma de duas frações e retornamos o resultado em sua forma simplificada, ou seja, reduzida: class Fracao: # construtor que recebe o numerador e o denominador # da fração def __init__(self, numerador = 0, denominador = 1): self.numerador = numerador self.denominador = denominador # efetua a soma de duad frações def __add__(self, outra_fracao): # cria a fração resultante res = Fracao() # o numerador da fração resultante recebe o numerador da # segunda fração multiplicado pelo denominador da fração atual res.numerador = outra_fracao.numerador * self.denominador # o numerador da fração resultante é somado com o produto do # denominador da segunda fração pelo numerador da fraçao atual res.numerador += outra_fracao.denominador * self.numerador # o denormiador da fração resultante recebe o produto do # denominador da segunda fração pelo denominador da fração # atual res.denominador = outra_fracao.denominador * self.denominador # faz a simplificação da fração resultante res.simplificar() return res # retorna a fração resultante # permite simplificar a fração def simplificar(self): ...... Restante do código disponível na Área de Apoiadores do site Ainda não é apoiador(a)? Chama no WhatsApp +55 (62) 98553-6711 (Osmar) Ao executar este código Python nós teremos o seguinte resultado: c:\estudos_python>python estudos.py O resultado é: 43/21 |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Python |
Veja mais Dicas e truques de Python |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |