ExpertiDict

Python · Intermediário · Português · Técnico

método dunder

/ˈmɛ.to.du ˈdɐ̃.deɾ/substantivo

Método especial com nome entre dois sublinhados duplos, como __init__ ou __len__, que o Python chama sozinho para implementar construção, operadores e funções embutidas.

Onde usar

Define como seu objeto se comporta com len(), ==, + e print(). Num review, implementar os dunders certos deixa a classe com cara de tipo nativo.

Em código

class Fila:
  def __init__(self):
    self.itens = [1, 2]

  def __len__(self):
    return len(self.itens)

print(len(Fila()))

Exemplos

Implementei o método dunder len para a coleção.

O print usa o método dunder str, então ajustei lá.

Cuidado

Não chame dunders direto, como obj.__len__(); use a função ou o operador (len(obj)), e não invente nomes novos com sublinhados duplos.

Sinônimos

método mágico, método especial

Origem

Abreviação do inglês double underscore, sublinhado duplo.

Veja também

Todos os termos de Python