Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] Validação não esta ocorrendo

No meu Traceback apresenta a mensagem que a quantidade de dígitos inválida, porem eu peguei um cpf do exemplo da pypi. Pode ser algo de errado na minha class, eu devo estar deixando passar algo...

Esse é a minha classe

from validate_docbr import CPF

class Cpf:
    """criando o inicializador"""
    def __init__(self, documento):
        self.documento = str(documento)
        if self.cpf_eh_valido(documento):
            self.cpf = documento
        else:
            raise ValueError("CPF inválido!")

    def cpf_eh_valido(self, documento):
        """validando o cpf"""
        if len(documento) == 11:
            validador = CPF()
            return validador.validate(documento)
        else:
            raise ValueError("Quantidade de dígitos inválida!")

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

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

Essa é a chamada

from Cpf import Cpf

cpf_um = Cpf("012.345.678-90")

Esse é o traceback

Traceback (most recent call last):
  File "E:\Projetos\Python-Project\PythonBrasil\main.py", line 4, in <module>
    cpf_um = Cpf("012.345.678-90")
  File "E:\Projetos\Python-Project\PythonBrasil\Cpf.py", line 9, in __init__
    if self.cpf_eh_valido(documento):
  File "E:\Projetos\Python-Project\PythonBrasil\Cpf.py", line 20, in cpf_eh_valido
    raise ValueError("Quantidade de dígitos inválida!")
ValueError: Quantidade de dígitos inválida!

Se alguem puder me ajudar, agradeço!

2 respostas
solução!

De acordo com essa condição if len(documento) == 11: O CPF que voce está usando está incorreto, poque considerando os pontos e o traço, dá mais de 11 dígitos. por isso que está gerando erro.

Eu acabei dando continuidade no curso refiz o codigo e parou de ocorrer o erro!

Muito obrigado pela ajuda