No curso, implementamos um teste para evitar saques acima do limite da conta:
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 de R$ {} ultrapassou o limite da conta.".format(valor))
No entanto, os métodos "saca" e "deposita" não verificam se os parâmetros são negativos. Dessa forma, é possível "sacar" lançando um valor negativo no método "deposita". Por outro lado, é possível "depositar" lançando um valor negativo no método "saca".