Executando verificação de segurança...
Respondendo a [Não disponível] dentro da publicação Métodos mágicos em Python
2

Primeiro, obrigado pela generosidade com os TabCoins! Por fim, obrigado pelo seu exemplo, realmente é uma forma mais baixo nível de ver uma classe, eu reescrevi em python como seria um código similar:


def inicializador(self, value):
    self.value = value

def real_to_str(self):
    return 'R$ {:0.2f}'.format(self.value)

def soma(self, money):
    return Real(self.value + money.value)

propriedades_e_metodos = {
   '__init__':  inicializador,
   '__str__': real_to_str,
   '__add__': soma,
}

Real = type('Real', (object, ), propriedades_e_metodos) 

real10 = Real(10)
real20 = Real(20)

print(real10 + real20) # Imprime: R$ 30.00
Carregando publicação patrocinada...
1

Pensando bem, apesar da sintaxe que escrevi ser semelhante ao código em Lua, eu não sabia que os métodos mágicos era tratados de forma diferente dos métodos convencionais. Você tem alguma referência sobre isso?

Pela forma que defini no comentário a cima, os métodos mágicos são definidos e tratados iguais aos metodos ordinários.