2
respostas

Mãos na massa: Verificando o saque e métodos estáticos


class Conta:

    CODIGOS_BANCOS = {"BB": '001', "Caixa": '104', "Bradesco": '237'}

    def __init__(self, numero, titular, saldo = 0.0, limite = 1000.0):
        self.__numero = numero
        self.__titular = titular
        self.__saldo = saldo
        self.__limite = limite


    @staticmethod
    def codigo_banco(banco):
        return Conta.CODIGOS_BANCOS[banco]

    @staticmethod
    def codigos_bancos():
        return Conta.CODIGOS_BANCOS


    @property
    def saldo(self):
        return self.__saldo

    @property
    def titular(self):
        return self.__titular.title()

    @property
    def limite(self):
        return self.__limite
    

    @limite.setter
    def limite(self, novo_limite):
        self.__limite = novo_limite    


    def extrato(self):
        print("Saldo de R$ {:.2f} do titular {}".format(self.saldo, self.titular))

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

    def __pode_sacar(self, valor):
        return (self.__saldo + self.__limite) >= valor

    def sacar(self, valor):
        if (self.__pode_sacar(valor)):
            self.__saldo -= valor
        else:
            print("Não é possível sacar o valor solicitado.")

    def transferir(self, valor, destino):
        self.sacar(valor)
        destino.depositar(valor)

2 respostas

Oi, Lucas! Tudo certo?

Código super bacana, parabéns pela elaboração! Obrigada também por compartilhá-lo aqui no fórum com a nossa comunidade, tenho certeza que servirá de inspiração para muitos colegas!

Não esqueça que caso surja alguma dúvida especifica estarei a disposição para ajudar, basta publicar aqui no fórum!

Um forte abraço e bons estudos!

Obrigado!