Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Solucionado (ver solução)

erro ao testar com CPF

Olá,

quando eu tento rodar o código abaixo e tento validar um CPF, eu tenho o seguinte erro:

NameError: name 'CPF' is not defined

não consegui identificar no código o que está errado.

class CPF_CNPJ:
    def __init__(self, documento, tipo_documento):
        #documento = str(documento)
        self.tipo_documento = tipo_documento
        documento = str(documento)
        if self.tipo_documento == 'cpf':
          if self.cpf_valido(documento):
            self.cpf = documento
          else:
            raise ValueError('CPF Inválido!!')
        elif self.tipo_documento == 'cnpj':
          if self.cnpj_valido(documento):
            self.cnpj = documento
          else:
            raise ValueError('CNPJ Inválido!!')
        else:
          raise ValueError('Documento inválido!!')


    def __str__(self):
      return self.formata_cpf()

    def cpf_valido(self, cpf):
        if len(cpf) == 11:
          valida_cpf = CPF()
          return valida_cpf.validate(cpf)
        else:
            raise ValueError('Quantidade de dígitos é inválido!!')

    def formata_cpf(self):
      mascara = CPF()
      return mascara.mask(self.cpf)

    def cnpj_valido(self, cnpj):
      if len(cnpj) == 14:
        valida_cnpj = CNPJ()
        return valida_cnpj.validate(cnpj)
      else:
        raise ValueError('Quantidade de dígitos inválido')
3 respostas
solução

Bom dia, Diego!

O que parece estar acontecendo é que em vários momentos do seu código você chama uma função chamada CPF(). Porém, parece que você não definiu essa função previamente e então o python se perde, visto que não sabe o que fazer com isso. Há alguma função chamada CPF em algum outro local de seu código?

Oii Diego, como você está?

Você fez o import do módulo de CPF no cabeçalho da classe? Como mostro abaixo:

from validate_docbr import CPF, CNPJ

E como está sua parte de testes? (A parte que você cria um objeto da classe CPF_CNPJ. )

Compartilhe seu código completo conosco para que possamos analisar.

Fico no aguardo.

Oi Nádia,

Relmente, faltou eu informar o CPF na hora de chamar o import. Agora está funcionando,

Obrigado, Diego

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