Bom dia. Ainda tratando da classe Conta tenho uma dúvida:
- Ao tentar formatar a impressão do Saldo do titular da conta ocorreu o seguinte problema:
código 1:
def extrato(self):
print("Saldo de R$ {0:12.2f} do sr. {}".format(self.saldo, self.titular))
Resposta da execução:
from Conta import Conta
conta = Conta(1234, "Fulano de Tal", 155.6, 2500)
Construindo objeto ... <Conta.Conta object at 0x057D9FF0>
conta.extrato()
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Users\c134550\Documents\UnCaixa\Python - Alura\oo\Conta.py", line 10, in extrato
print("Saldo de R$ {0:12.2f} do sr. {}".format(self.saldo, self.titular))
ValueError: cannot switch from manual field specification to automatic field numbering
Não consegui entender o motivo do erro.
código 2:
def extrato(self):
print("O Saldo do sr. {} é de R$".format(self.titular), "{0:12.2f}.".format(self.saldo))
Resultado da execução:
Python 3.6.0 (v3.6.0:41df79263a11, Dec 23 2016, 07:18:10) [MSC v.1900 32 bit (Intel)] on win32
from Conta import Conta
conta = Conta(1234, "Fulano de Tal", 155.6, 2500)
Construindo objeto ... <Conta.Conta object at 0x0585BE70>
conta.extrato()
O Saldo do sr. Fulano de Tal é de R$ 155.60.
Neste caso não houve erro e o valor foi mostrado com formatação normal. Não consegui entender o motivo...
Observação: Vejam que utilizei as properties self.saldo e self.titular, ao invés de utilizar a definição dos atributos da classe self.saldo e self.saldo.
Há algum impedimento para utilizar desta forma?