1
resposta

Verificar se o saldo + limite é suficiente para sacar/transferir

Olá pessoal da Alura, vi esse tópico aqui: https://cursos.alura.com.br/forum/topico-bug-no-metodo-transfere-do-projeto-de-introducao-a-orientacao-a-objetos-com-python-3-184524, onde os meninos estavam discutindo sobre qual seria uma boa forma de implementar uma verificação na conta, para que seja possível só sacar ou transferir valores que estejam dentro do limite da conta, fiz minha própria implementação e ficou assim o código:

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("O saldo de {} é de {}".format(self.__titular, self.__saldo))

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

    def pode_sacar(self, valor): # Criei esse método que avalia se é possível sacar o valor determinado ou não, a função retorna um bool, que é True caso
    # seja possível sacar o valor e False caso contrário.
        return valor <= (self.__saldo + self.__limite)

    def saca(self, valor): # Agora saca() tem um if que imprime uma mensagem caso não seja possível sacar o valor.
        if self.pode_sacar(valor):
            self.__saldo -= valor
        else:
            print("Saldo Insuficiente!")

    def transfere(self, valor, conta_destino): # Aqui também coloquei um if, que é semelhante ao saca(), mas imprime uma mensagem própria para 
    # transferência.
        if self.pode_sacar(valor):
            self.saca(valor)
            conta_destino.deposita(valor)
            print("Tranferência de {} realizada com êxito!".format(valor))
        else:
            print("Transferência não efetuada: Saldo Insuficiente!")

Quero saber se vocês tem algum jeito melhor de fazer essa verificação ou outra funcionalidade que seria legal colocar no código, terminei a parte 04 agora do curso, então não sei o que tem mais a frente, mas por enquanto é o que eu tenho! :D

1 resposta
O post foi fechado por inatividade após 3 meses. Para continuar o assunto, recomendamos criar um novo tópico. Bons Estudos!