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

Dificuldade em encontrar o erro

Ao tentar importar e executar a seguinte Classe no Console, dá umm erro que eu nãoconsigo identificar:

class Conta:
    def __init__(self, numero, titular, saldo=0, limite=1000):
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite

    def extrato(self):
        print("O saldo do(a) {} é de R${} reais".format(self.__titular, self.__saldo))

    def deposita(self, valor):
        if (valor > 0):
            self.__saldo += valor
        else:
            print("Operação inválida!")

    def saca(self, valor):
        if (self.__saldo >= valor):
            self.__saldo -= valor
        else:
            print("Saldo insuficiente!")

    def transfere(self, valor, destino):
        if self.__saldo >= valor:
            valor_transferido = self.saca(valor)
            destino.deposita(valor_transferido)
        else:
            print("Operação cancelada!")
3 respostas

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Tá me devolveendo um None Type que eu não faço idéia de onde está vindo!

solução!

Erro de lógica.

    def transfere(self, valor, destino):
        if self.__saldo >= valor:
            valor_transferido = self.saca(valor)
            destino.deposita(valor_transferido)
        else:
            print("Operação cancelada!")

valor transferido recebe o retorno de self.saca(valor), mas o método saca não retorna nada.

Há muitas maneiras de corrigir. Uma sugestão é adicionar o retorno valor no método saca.

def saca(self, valor):
    if (self.__saldo >= valor):
        self.__saldo -= valor
        return valor
    else:
        print("Saldo insuficiente!")
        return 0 # Já que não conseguiu sacar, o saque foi de 0

MUITO BOM, MEU AMIGO! Às vezes vamos codando no automático e não percebemmos erros de sintaxe que a princípio seriam muito simples! Valeu pelas dicas!