Ofereço ajuda em Java, C/C++, Python, C#, LISP, AutoLisp, AutoCAD
+55 (062) 98553-6711
Ofereço ajuda em PHP, Python, C#, JavaScript, Laravel, Google Ads e SEO
+55 (062) 98243-1195

Você está aqui: Python ::: Dicas & Truques ::: Sobrecarga de Operadores

Como sobrecarregar o operador de adição em Python para efetuar a soma de frações

Quantidade 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

Link para compartilhar na Internet ou com seus amigos:

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

E-Book 350 Exercícios Resolvidos de Java - PDF com 500 páginas
Domine lógica de programação e a linguagem Java com o nosso E-Book 350 Exercícios Exercícios de Java, para você estudar onde e quando quiser.

Este e-book contém exercícios resolvidos abrangendo os tópicos: Java básico, matemática e estatística, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book
E-Book 650 Dicas, Truques e Exercícios Resolvidos de Python - PDF com 1.200 páginas
Domine lógica de programação e a linguagem Python com o nosso E-Book 650 Dicas, Truques e Exercícios Exercícios de Python, para você estudar onde e quando quiser.

Este e-book contém dicas, truques e exercícios resolvidos abrangendo os tópicos: Python básico, matemática e estatística, banco de dados, programação dinâmica, strings e caracteres, entrada e saída, estruturas condicionais, vetores e matrizes, funções, laços, recursividade, internet, arquivos e diretórios, programação orientada a objetos e muito mais.
Ver Conteúdo do E-book

Linguagens Mais Populares

1º lugar: Java
2º lugar: Python
3º lugar: C#
4º lugar: PHP
5º lugar: C
6º lugar: Delphi
7º lugar: JavaScript
8º lugar: C++
9º lugar: VB.NET
10º lugar: Ruby



© 2025 Arquivo de Códigos - Todos os direitos reservados
Neste momento há 28 usuários muito felizes estudando em nosso site.