Bom dia. No meu algoritmo, na classe ClienteBanco, dentro do método construtor (init) eu fiz uma adaptação do número de CPF (para completar sempre 11 digitos e dividir no formato xxx.xxx.xxx-xx).
Eu pensei em fazer uma função em separado para isso mas, como diz o título, fiquei em duvida se seria melhor ou pior em relação a boas práticas.
Segue algoritmo do jeito que eu fiz, feedbacks são muito bem vindos.
Abraços!
class ClienteBanco:
clientes = []
def __init__(self,nome,idade,endereco,cpf,profissao):
self.nome = nome
self.idade = idade
self.endereco = endereco
cpf_partes = f'{cpf:011d}' #:011d, garantindo que tenha 11 dígitos
self.cpf = f'{cpf_partes[:3]}.{cpf_partes[3:6]}.{cpf_partes[6:9]}-{cpf_partes[9:]}'
self.profissao = profissao
ClienteBanco.clientes.append(self)
@classmethod #criar um método de classe para a conta ClienteBanco
def listar_clientes(cls):
lista = f'{'LISTA DE CLIENTES DO BANCO'.center(112,'_')}\n{'Nome'.center(20,'_')} | {'Idade'.center(20,'_')} | {'Endereço'.center(20,'_')} | {'CPF'.center(20,'_')} | {'Profissão'.center(20,'_')}\n'
for conta in ClienteBanco.clientes:
lista += f'{conta.nome.title().ljust(20)} | {str(conta.idade).ljust(20)} | {conta.endereco.ljust(20)} | {conta.cpf.ljust(20)} | {conta.profissao.upper()}\n'
return print(lista)
@classmethod
def criar_conta(cls,titular,saldo_inicial):
conta = ContaBancariaPythonica(titular,saldo_inicial)
return conta