Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Validação cpf

Não consigo encontrar o erro do código proposto na aula

from validate_docbr import CPF


class Cpf:
    def __init__(self, documento):
        documento = str(documento)
        if self.cpf_e_valido(documento):
            self.cpf = documento
        else:
            raise ValueError("CPF Inválido!!")


    def cpf_e_valido(self, documento):
        if len(documento) == 11:
            validador = CPF()
            return validador.validate(cpf)
        else:
            return ValueError("Quantidade de digitos invalida")

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

    def __str__(self):
        return self.format_cpf()
1 resposta
solução!

Boa Tarde Vinicius,

Lendo o seu código encontrei um lugar que acho que possa estar dando problema:

    def cpf_e_valido(self, documento):
        if len(documento) == 11:
            validador = CPF()
            return validador.validate(cpf)
        else:
            return ValueError("Quantidade de digitos invalida")

Nessa função se o tamanho do documento for maior que 11 voce retorna validador.validat(cpf), porém você nunca declarou a variável cpf na função.

Para o que você está querendo fazer o correto seria:

    def cpf_e_valido(self, documento):
        if len(documento) == 11:
            validador = CPF()
            return validador.validate(documento)
        else:
            return ValueError("Quantidade de digitos invalida")

Espero ter ajudado!

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