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

Não da erro

Pessoal bom dia,

Tudo bem?

O que estou errando aqui que meu código não retorna erro?

Eu coloco, por exemplo, cpf = Cpf("38135199990044") e não acontece nada. Não da erro. Deveria apresentar, já que tem mais de 11 dígitos não é?

Se eu coloco print(cpf), ele printa o cpf "381.351.999-90044"

from validate_docbr import CPF

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

    def validador_de_cpf(self, cpf):
        if len(cpf) == 11:
            validador = CPF()
            return validador.validate(cpf)
        else:
            return ValueError("Quantidade de digitos inválida!!")

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

    def formatar_cpf(self):
        fatia_um = self.cpf[:3]
        fatia_dois = self.cpf[3:6]
        fatia_tres = self.cpf[6:9]
        fatia_quatro = self.cpf[9:]

        return (
            "{}.{}.{}-{}".format(
                fatia_um,
                fatia_dois,
                fatia_tres,
                fatia_quatro
            )
        )

Valeu! :)

3 respostas
solução!

Boa tarde,

Pra ficar mais facil de entender, cria um novo arquivo e coloca esse código

def teste():
    return ValueError()

print(bool(teste()))

Basicamente, quando vc faz o if self.validador_de_cpf(documento): e retorna dentro da funcao return ValueError("Quantidade de digitos inválida!!"), ele entende que isso eh True para a comparacao, por isso nao exibe erro

Se nao tiver entendido, pode avisar que tento explicar com uma abordagem melhor

Oi Ygor boa noite brother, Pô, super agradeço a explicação!

Eu confesso que não entendi 100%... fiz o teste aqui como disse, ai fui editar meu código (que era para estar igual da aula, e ai minha dúvida do porque não funcionava igualmente), e descobri que eu deveria ter posto RAISE ValueError e não RETURN! Ai resolveu! :D

@Vinicius, boa, eu nao assisti a aula, apenas tinha uma geral do que estava acontecendo, pensei que voce gostaria de retornar o erro ali mesmo, mas se deu certo deu certo ^^, 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