









Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Aula abordando o tópico de sobrecarga de operadores dentro da computação na linguagem Python.
Tipologia: Notas de aula
1 / 16
Esta página não é visível na pré-visualização
Não perca as partes importantes!










Em Python, o comportamento dos operadores é definido por métodos especiais, que por convenção, têm nomes que começam e terminam com “__” (duplo underline). Exemplos: Operador Método Operação
class Inteiro(): def init(self, entrada): self.__valor = entrada def getValor(self): return self.__valor def add(self, outro): return self.getValor() + outro.getValor()
a = Inteiro(20) b = Inteiro(10) print a + b 30
class String() : def sub(self, s): return self.replace(s, ‘’)
s1 = String(‘Pedro Alvares Cabral’) s2 = String(‘ Alvares’) print (s1 – s2) ‘Pedro Cabral’
class Fracao(): def init(self, numerador, denominador): self.__numerador = numerador self.__denominador = denominador def str(self): return str(self.__numerador) + ‘/’ + str(self.__denominador)
a = Fracao(1,2) print a 1/
class Fracao(): def init(self, numerador, denominador): self.__numerador = numerador self.__denominador = denominador def str(self): return str(self.__numerador) + ‘/’ + str(self.__denominador)
a = Fracao(1,2) print a 1/ A função str sobrecarrega o comando de impressão
def mul(self, outro): numerador = self.__numerador * outro.getNumerador() denominador = self.__denominador * outro.getDenominador() return Fracao(numerador, denominador)
def mul(self, outro): numerador = self.__numerador * outro.getNumerador() denominador = self.__denominador * outro.getDenominador() return Fracao(numerador, denominador)
a = Fracao(1, 2) b = Fracao(3, 4) c = a * b print c 3/
Sobrecarga de operadores é uma maneira muito elegante de implementar uma álgebra simples para suas classes. No exemplo da Fracao, se não usássemos sobrecarga de operadores, teríamos que fazer um novo método para a multiplicação, como por exemplo: a = Fracao(1,2) b = Fracao(3,4) c = a.multiplica(b) Com sobrecarga, a semântica do operador ***** ficou encapsulada dentro da classe.
Alguns outros operadores que podem ser sobrecarregados: Operador Método Operação // floordiv Divisão truncada % mod Módulo
gt Maior que <= le Menor ou igual a = ge Maior ou igual a == eq Igual a != ne Diferente de print str Impressão
2) Desenvolva uma classe para trabalhar com números complexos, na qual estejam definidas as quatro operações básicas com este conjunto numérico. Sobrescreva também o str para imprimir o número na forma de complexo. Adição: (a + bi) + (c + di) = (a + c) + (b + d)i Subtração: (a + bi) – (c + di) = (a – c) + (b – d)i Multiplicação: (a + bi) * (c + di) = (ac - bd) + (ad + bc)i Divisão: