Bom dia. Segue código para avaliação. Obrigado!
class Conta:
def __init__(self, numero, titular, saldo, limite):
self.__numero = numero
self.__titular = titular
self.__saldo = saldo
self.__limite = limite
# O decorador @property muda a forma de chamar um método get e acessar um atributo.
# Ele depende que os atributos sejam privados.
# Sintaxe padrão:
# @property
# def atributo(self):
# return self.__atributo
# Para usar o método:
# objeto.atributo
@property
def saldo(self):
return self.__saldo
@property
def titular(self):
return self.__titular
@property
def limite(self):
return self.__limite
@property
def numero(self):
return self.__numero
# O decorador @atributo.setter muda a forma de chamar um método set e alterar um atributo.
# Ele depende que os atributos sejam privados.
# Sintaxe padrão:
# @atrobuto.setter
# def atributo(self, argumento):
# implementação
# Para usar o método:
# objeto.atributo = argumento
@limite.setter
def limite(self, novo_limite):
self.__limite = novo_limite
def depositar(self, valor):
self.__saldo += valor
def __possivel_movimentar(self, valor):
valor_disponivel_a_sacar = self.__saldo + self.__limite
return valor <= valor_disponivel_a_sacar
def sacar(self, valor):
self.__saldo -= valor if self.__possivel_movimentar(valor) else print("Saldo insuficiente")
def transferir(self, valor, conta):
if self.__possivel_movimentar(valor):
self.sacar(valor)
conta.depositar(valor)
@staticmethod
def codigos_bancos():
return {"BB": "001", "Caixa": "104", "Bradesco": "237"}