21.12.2022 Views

python_para_desenvolvedores_2ed

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

128 Sobrecarga de operadores

# A classe String deriva de str

class String(str):

def __sub__(self, s):

return self.replace(s, '')

s1 = String('The Lamb Lies Down On Broadway')

s2 = 'Down '

print '"%s" - "%s" = "%s"' % (s1, s2, s1 - s2)

Saída:

"The Lamb Lies Down On Broadway" - "Down " = "The Lamb Lies On

Broadway"

Observações:

▪ A subtração definida no código não é comutativa (da mesma forma que

a adição em strings também não é)

▪ A classe str não é aberta, portanto não é possível alterar o

comportamento da string padrão do Python. Porém a classe String é

aberta.

▪ A redefinição de operadores conhecidos pode dificultar a leitura do

código.

Coleções

Além de métodos especiais para objetos escalares, existem também métodos

especiais para lidar com objetos que funcionam como coleções (da mesma

forma que as listas e os dicionários), possibilitando o acesso aos itens que

fazem parte da coleção.

Exemplo:

# -*- coding: latin1 -*-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!