Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro na resolução do exercício: AttributeError: 'tuple' object has no attribute 'transfere'

O código:

class Conta:

    def __init__(self, numero, titular, saldo, limite):
        print("Construindo objeto ... {}".format(self))
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite

    def extrato(self):
        print("Saldo de {} do titular {}".format(self.__saldo, self.__titular))

    def deposita(self, valor):
        self.__saldo += valor

    def saca(self, valor):
        self.__saldo -= valor

    def transfere(self, valor, destino):
        self.saca(valor)
        destino.deposita(valor)

No console:

From conta import Conta

conta=(123,"Peppa",100.0,1000.0)
conta2=(321,"Suzie",90.0,1000.0)
conta.transfere(10.0,conta2)

msg de erro quando executo:

File "<input>", line 1, in <module>
AttributeError: 'tuple' object has no attribute 'transfere'

Não consigo identificar o erro, alguém pode ajudar?

2 respostas
solução!

Olá Estela, tudo bem com você?

O erro AttributeError: 'tuple' object has no attribute 'transfere' que está sendo apresentado, está indicando que está ocorrendo a tentativa de acesso ao atributo transfere em um objeto do tipo tupla que não possui este método. Uma tupla em Python é semelhante a uma lista, mas é imutável e é representada por parênteses.

Este erro está acontecendo devido à criação dos objetos conta e conta2 não está ocorrendo da forma correta. Quando vamos criar um objeto de uma classe, devemos usar a seguinte sintaxe:

objeto_da_clase = NomeDaClasse(atributo1, atributo2)

Já no seu código, está da seguinte forma conta=(123,"Peppa",100.0,1000.0), desta forma a variável conta receberá uma tupla e não um objeto da classe Conta. O correto será: conta=Conta(123,"Peppa",100.0,1000.0)

Peço que realize uma nova execução do código, seguindo os passos apresentados abaixo:

  • Abra o seu projeto no editor de código
  • Abra o Python console
  • No Python console, execute o comando abaixo para realizar a importação da classe Conta:
    from conta import Conta 
  • Crie os objetos conta e conta2:
    conta=Conta(123,"Peppa",100.0,1000.0)
    conta2=Conta(321,"Suzie",90.0,1000.0)
  • Realize a chamada do método transfere do objeto conta:
    conta.transfere(10.0,conta2)
  • Realize a chamada do método extrato para verificar o saldo da cona:
    conta.extrato()
  • O resultado será Saldo de 90.0 do titular Peppa

Espero ter ajudado. Continue mergulhando em conhecimento e não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Obrigada, Felippe!

deu certo aqui!:)