1
resposta

[Projeto] Gostaria de um feedback sobre meu projeto

>>> INSERINDO OS DADOS PARA VALIDAÇÃO <<<

import os
os.system('cls')

from VALIDACAO_GERAL import *

cpf=12345678901
cpf1=15316264754
cpf2=31375855387
cpf3=111222333
cpf4=111222333444555
cnpj=33572312000129
cnpj1=35379838000112
cnpj2='00360305000104'
cnpj3=111222333
cnpj4 = 111222333444555
cpfs = [cpf,cpf1,cpf2,cpf3,cpf4,cnpj,cnpj1,cnpj2,cnpj3,cnpj4]

for i in cpfs:
    validar_geral(i)
    
    
>>> VALIDANDO OS DADOS  <<<<<

from validate_docbr import CPF,CNPJ

class validar_geral:
  def __init__(self,documento):
    self.documento = str(documento)
    if len(self.documento) == 11:
      validar_cpf(self.documento)
    elif len(self.documento) == 14:
      validar_cnpj(self.documento)
    else:
      print("Numeros de caracteres inválidos")


class validar_cpf:
  def __init__(self,documento):
    self.documento=str(documento)
    if self.cpf_analise(self.documento):
      self.cpf = self.documento
      
      self.formatar() 
    else:
      print("CPF Inválido")
      

  def cpf_analise(self,documento):
    
    if len(self.documento) == 11:
      validador = CPF()
      return validador.validate(self.documento)
    
    else:    
      return False
  def formatar(self):
      
      self.mascara = CPF()
      self.mascara =  self.mascara.mask(self.cpf)

      print(f"CPF : {self.mascara} validado com Sucesso")
  
    

class validar_cnpj:
  def __init__(self,documento):
    self.documento=str(documento)
    if self.cnpj_analise(self.documento):
      self.cnpj = self.documento
      
      self.formatar() 
    else:
      print("CNPJ Inválido")
      
   def cnpj_analise(self,documento):
    
    if len(self.documento) == 14:
      validador = CNPJ()
      return validador.validate(self.documento)
    
    else:    
      return False
  def formatar(self):
      
      self.mascara = CNPJ()
      self.mascara =  self.mascara.mask(self.cnpj)
      print(f"CNPJ : {self.mascara} validado com Sucesso")

```>>> INSERINDO OS DADOS PARA VALIDAÇÃO <<<

import os
os.system('cls')

from VALIDACAO_GERAL import *

cpf=12345678901
cpf1=15316264754
cpf2=31375855387
cpf3=111222333
cpf4=111222333444555
cnpj=33572312000129
cnpj1=35379838000112
cnpj2='00360305000104'
cnpj3=111222333
cnpj4 = 111222333444555
cpfs = [cpf,cpf1,cpf2,cpf3,cpf4,cnpj,cnpj1,cnpj2,cnpj3,cnpj4]

for i in cpfs:
    validar_geral(i)
    
    
>>> VALIDANDO OS DADOS  <<<<<

from validate_docbr import CPF,CNPJ

class validar_geral:
  def __init__(self,documento):
    self.documento = str(documento)
    if len(self.documento) == 11:
      validar_cpf(self.documento)
    elif len(self.documento) == 14:
      validar_cnpj(self.documento)
    else:
      print("Numeros de caracteres inválidos")


class validar_cpf:
  def __init__(self,documento):
    self.documento=str(documento)
    if self.cpf_analise(self.documento):
      self.cpf = self.documento
      
      self.formatar() 
    else:
      print("CPF Inválido")
      

  def cpf_analise(self,documento):
    
    if len(self.documento) == 11:
      validador = CPF()
      return validador.validate(self.documento)
    
    else:    
      return False
  def formatar(self):
      
      self.mascara = CPF()
      self.mascara =  self.mascara.mask(self.cpf)

      print(f"CPF : {self.mascara} validado com Sucesso")
  
    

class validar_cnpj:
  def __init__(self,documento):
    self.documento=str(documento)
    if self.cnpj_analise(self.documento):
      self.cnpj = self.documento
      
      self.formatar() 
    else:
      print("CNPJ Inválido")
      
   def cnpj_analise(self,documento):
    
    if len(self.documento) == 14:
      validador = CNPJ()
      return validador.validate(self.documento)
    
    else:    
      return False
  def formatar(self):
      
      self.mascara = CNPJ()
      self.mascara =  self.mascara.mask(self.cnpj)
      print(f"CNPJ : {self.mascara} validado com Sucesso")
      ```
1 resposta

Olá, Antônio!

Parabéns pela iniciativa! Seu código está funcional.

Com base no código compartilhado, você está criando duas classes, validar_cpf e validar_cnpj, para validar os respectivos documentos. Essas classes têm métodos para analisar e formatar os documentos, além de usar as classes CPF e CNPJ do módulo validate_docbr para realizar a validação.

Observei que você está imprimindo mensagens de erro diretamente nas classes de validação. Seria mais adequado lançar exceções ou retornar valores booleanos indicando se o documento é válido ou não. Isso permitiria que você tratasse os erros de forma mais flexível e personalizada.

Além disso, você poderia considerar separar a lógica de validação em funções separadas, em vez de criar classes separadas para CPF e CNPJ. Isso tornaria o código mais modular e reutilizável.

Por fim, é importante lembrar que a validação de CPF e CNPJ é um assunto complexo e envolve mais do que apenas a verificação do número de caracteres. Existem regras específicas para cada tipo de documento, como cálculos de dígitos verificadores.

Espero ter ajudado e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software