Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Erro no Console

Ao tentar usar a função extrato em um objeto, um erro é exibido, porém o código está correto: conta.py:

class Conta:

    def __init__(self, numero, titular, saldo, limite):
        self.numero = numero
        self.titular = titular
        self.saldo = saldo
        self.limite = limite

    def extrato(self):
        print("Saldo {} do titular {}".format_map(self.numero, self.titular))

Console:

from conta import Conta

conta = Conta(123, "Luiz", 55.5, 1000.0)

conta.extrato()

Erro:

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2023.2.1\plugins\python-ce\helpers\pydev\pydevconsole.py", line 364, in runcode
    coro = func()
           ^^^^^^
  File "<input>", line 1, in <module>
  File "C:\Users\HP\PycharmProjects\oo\conta.py", line 10, in extrato
    print("Saldo {} do titular {}".format_map(self.numero, self.titular))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
TypeError: str.format_map() takes exactly one argument (2 given)
1 resposta
solução!

Bom dia!

Na função extrato, você acabou utilizando o format_map. O correto é utilizar o -> .format(self.numero, self.titular)

Dica: Você pode utilizar uma f-string para resolver o problema do .format_map

a f-string chegou no python 3.6 e é uma forma mais fácil de formatar strings, veja um exemplo:

print(f"Novo saldo: {self.saldo}")

Usando o "f" na frente da string "Novo saldo", eu consigo usar a variável self.saldo dentro de chaves {}, sem a necessidade de usar o format