1
resposta

Meu código ficou desse jeito

# Criando métodos estáticos e validando o saque se for possível

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


    @staticmethod
    def codigos_bancos():
        return {'BB': '001', 'Caixa': '104', 'Bradesco':'237'}


    @staticmethod
    def codigo_banco():
        return "001"


    def extrato(self):
        print("Olá {},seu saldo é de R${}".format(self.__titular, self.__saldo))


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


    def __pode_sacar(self, valor_a_sacar):
        valor_disponivel_a_sacar = self.__saldo + self.__limite
        return valor_a_sacar <= valor_disponivel_a_sacar


    def saca(self,valor):
        if(self.__pode_sacar(valor)):
            self.__saldo -= valor
        else:
            print("O valor {} passou o limite".format(valor))


    def transfere(self, valor, destino):
        if (self.__pode_sacar(valor) > 0):
            self.saca(valor)
            destino.deposita(valor)
        else:
            print("Saldo indisponível: O valor {} passou o limite, não é possível realizar a transferência".format(valor))


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


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


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


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


    @property
    def numero(self):
        return self.__numero

1 resposta

Bom dia!

Sua resolução ficou excelente! Você fez um ótimo uso do aprendizado.

Parabéns pelo empenho nos estudos e continue praticando.

Para que mais pessoas consigam visualizar a sua solução proposta, é recomendado que você marque este tópico como solucionado. Assim pode ajudar ainda mais pessoas :)

Bons estudos!