Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas


Aula Computação em Python - Sobrecarga de Operadores, Notas de aula de Fundamentos da Computação

Aula abordando o tópico de sobrecarga de operadores dentro da computação na linguagem Python.

Tipologia: Notas de aula

2020

Compartilhado em 19/05/2020

PedroPereira
PedroPereira 🇧🇷

4.9

(8)

8 documentos

1 / 16

Toggle sidebar

Esta página não é visível na pré-visualização

Não perca as partes importantes!

bg1
Orientação a
Objetos parte 3
SOBRECARGA DE OPERADORES
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff

Pré-visualização parcial do texto

Baixe Aula Computação em Python - Sobrecarga de Operadores e outras Notas de aula em PDF para Fundamentos da Computação, somente na Docsity!

Orientação a

Objetos – parte 3

SOBRECARGA DE OPERADORES

Sobrecarga de Operadores

 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

  • add Adição
  • sub Subtraçao
  • mul Multiplicação ** pow Potência / div Divisão

Exemplo

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

Exemplo

class String() : def sub(self, s): return self.replace(s, ‘’)

s1 = String(‘Pedro Alvares Cabral’) s2 = String(‘ Alvares’) print (s1 – s2) ‘Pedro Cabral’

Exemplo: classe Fração

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/

Exemplo: classe Fração

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

Exemplo: classe Fração

def mul(self, outro): numerador = self.__numerador * outro.getNumerador() denominador = self.__denominador * outro.getDenominador() return Fracao(numerador, denominador)

Exemplo: classe Fração

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

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

Sobrecarga de Operadores

 Alguns outros operadores que podem ser sobrecarregados: Operador Método Operação // floordiv Divisão truncada % mod Módulo

  • pos Positivo
  • neg Negativo < lt Menor que

gt Maior que <= le Menor ou igual a = ge Maior ou igual a == eq Igual a != ne Diferente de print str Impressão

Exercícios

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