1
resposta

Como sugestão de pequena melhoria, incluí a verificação do saldo+limite também para a operação de transferência.

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

    @staticmethod
    def codigo_banco():
        return "001"

    @staticmethod
    def codigo_bancos():
        return {'BB':"001",'CAIXA':"104",'BRADESCO':"237"}


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

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

    def __pode_retirar(self,valor_a_retirar):
        valor_disp_retirar = self.__saldo+self.__limite
        if (valor_a_retirar<= valor_disp_retirar):
            return True
        else:
            return False

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

    def transferir(self,valor,destino):
        if (self.__pode_retirar(valor)):
            self.sacar(valor)
            destino.depositar(valor)
        else:
            print("O valor {} passou o limite".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
1 resposta

Bom dia Flávio, tudo bem? Espero que sim!

Obrigado por enviar o seu código, dessa forma a transferência só será possível quando a pessoa tiver saldo e limite suficiente, muito bom!

Bons estudos!