class Conta:
    def __init__(self,numero, titular, saldo, limite):
        print(f"Construindo objeto ...{self}  ")
        self.__numero=numero
        self.__titular=titular
        self.__saldo=saldo
        self.__limite=limite
    pass
    def extrato(self):
        print(f"O saldo de {self.__saldo} é do titular {self.__titular}")
    def deposito(self,valor):
        self.__saldo+=valor
    def saca(self,valor):
        if self.__saldo - valor < 0:
            print(f"O valor de saque informado não é valido com o seu saldo atual, o saldo atual é {self.__saldo:02f}")
        else:
            self.__saldo-=valor
    def transfere(self,valor,destino):
        if self.__saldo - valor < 0:
            print(f"O seu saldo é insuficiente para realizar essa transferência. Saldo atual R${self.__saldo:02f})
        else:
            self.saca(valor)
            destino.deposito(valor)
    def get_saldo(self):
        return self.__saldo
    def get_titular(self):
        return self.__titular
    def get_limite(self):
        return self.__limite
    def set_limite(self,limite):
        self.__limite=limite
Decide não colocar o setter para o atributo "saldo", pois estou seguindo com a ideia que eu já possuo metodos (saque/deposito) que já podem realizar essa atividade.