Files
cursopython2023/aula158/contas.py
2022-12-01 09:40:19 -03:00

69 lines
1.7 KiB
Python

import abc
class Conta(abc.ABC):
def __init__(self, agencia, conta, saldo=0):
self.agencia = agencia
self.conta = conta
self.saldo = saldo
@abc.abstractmethod
def sacar(self, valor): ...
def depositar(self, valor):
self.saldo += valor
self.detalhes(f'(DEPÓSITO {valor})')
def detalhes(self, msg=''):
print(f'O seu saldo é {self.saldo:.2f} {msg}')
print('--')
class ContaPoupanca(Conta):
def sacar(self, valor):
valor_pos_saque = self.saldo - valor
if valor_pos_saque >= 0:
self.saldo -= valor
self.detalhes(f'(SAQUE {valor})')
return self.saldo
print('Não foi possível sacar o valor desejado')
self.detalhes(f'(SAQUE NEGADO {valor})')
class ContaCorrente(Conta):
def __init__(self, agencia, conta, saldo=0, limite=0):
super().__init__(agencia, conta, saldo)
self.limite = limite
def sacar(self, valor):
valor_pos_saque = self.saldo - valor
limite_maximo = -self.limite
if valor_pos_saque >= limite_maximo:
self.saldo -= valor
self.detalhes(f'(SAQUE {valor})')
return self.saldo
print('Não foi possível sacar o valor desejado')
print(f'Seu limite é {-self.limite:.2f}')
self.detalhes(f'(SAQUE NEGADO {valor})')
if __name__ == '__main__':
cp1 = ContaPoupanca(111, 222)
cp1.sacar(1)
cp1.depositar(1)
cp1.sacar(1)
cp1.sacar(1)
print('##')
cc1 = ContaCorrente(111, 222, 0, 100)
cc1.sacar(1)
cc1.depositar(1)
cc1.sacar(1)
cc1.sacar(1)
cc1.sacar(98)
cc1.sacar(1)
print('##')