from __future__ import annotations
from typing import ClassVar
class ContaBancaria:
def __init__(self, titular: str, saldo: float) -> None:
self._titular: str = titular
self._saldo: float = saldo
self._ativo: bool = False
@property
def titular(self) -> str:
return self._titular
@property
def saldo(self) -> float:
return self._saldo
@property
def ativo(self) -> bool:
return self._ativo
def __str__(self) -> str:
return(f"Titular: {self._titular.ljust(20)} | Saldo: {str(self._saldo).ljust(20)}")
def status(self) -> str:
return f"{self._titular} está no momento com a Conta Ativa" if self._ativo else f"{self._titular} está no momento com a Conta Inativa"
def ativar_conta(self) -> None:
self._ativo = True
def saldo_conta(self) -> str:
return f"{self._titular} possui R${self._saldo:.2f} na conta"
def listar_dados(self) -> None:
print (self)
class ClienteBanco:
clientes: ClassVar[list["ClienteBanco"]] = []
def __init__(self, nome: str, idade: int, cpf: str, cidade:str, profissao:str) -> None:
self._nome: str = nome
self._idade: int = idade
self._cpf: str = cpf
self._cidade: str = cidade
self._profissao: str = profissao
ClienteBanco.clientes.append(self)
def __str__(self) -> None:
return(f"Nome: {self._nome.ljust(20)} | Idade: {str(self._idade).ljust(20)} | Cpf: {self._cpf.ljust(20)} | Cidade: {self._cidade.ljust(20)} | Profissao: {self._profissao.ljust(20)}")
@classmethod
def listar_dados(cls) -> None:
for cliente in cls.clientes:
print(cliente)
def main() -> None:
pessoa1 = ContaBancaria("Rafaela", 1900.90)
pessoa2 = ContaBancaria("Carlos", 1200.00)
pessoa1.listar_dados()
pessoa2.listar_dados()
pessoa1.ativar_conta()
print(pessoa1.status())
print(pessoa1.saldo_conta())
cliente1 = ClienteBanco("Eduardo", 20, "123.456.789-01", "Manaus", "Advogado")
cliente2 = ClienteBanco("Rafa", 19, "987.654.321-01", "Manaus", "Estudante")
cliente3 = ClienteBanco("Carlos", 19, "111.222.333-44", "Manaus", "Estagiário")
ClienteBanco.listar_dados()
if __name__ == "__main__":
main()