Por exemplo, substituímos o __str__
método e Decimal
depois o chamamos de duas maneiras diferentes
from decimal import Decimal
class D(Decimal):
def __str__(self):
return super().normalize().__str__()
num = D('1.0')
print(f"{num}")
print(f"{str(num)}")
saídas
1.0
1
Mas ambos deveriam produzir 1
. Parece que o primeiro print
está ligando Decimal.__str__
em vez de D.__str__
por algum motivo. Por que isso acontece e como posso corrigir o comportamento?
Você também precisará substituir
__format__
(consulte o PEP da string f, procure por__format__
).imprime