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

Erro ao colocar CPF valido

Boa tarde,

O código abaixo dá erro quando coloco um CPF valido:

from validate_docbr import CPF,CNPJ

class Documento:

    @staticmethod
    def cria_documento(documento):
        if len(documento) == 11:
            return DocCpf(documento)
        elif len(documento) == 14:
            return DocCnpj(documento)
        else:
            raise ValueError("Quantidade de digitos incorreta!")

class DocCpf:
    def __int__(self,documento):
        if self.valida(documento):
            self.cpf = documento
        else:
            raise ValueError("CPF invalido")

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

    def valida(self,documento):
        validador_cpf = CPF()
        return validador_cpf.validate(documento)

    def format(self):
        mascara_cpf = CPF()
        return mascara_cpf.mask(self.cpf)

class DocCnpj:
    def __init__(self,documento):
        if self.valida(documento):
            self.cnpj = documento
        else:
            raise ValueError("CNPJ invalido")

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

    def valida(self,documento):
        validador_cnpj = CNPJ()
        return validador_cnpj.validate(documento)

    def format(self):
        mascara_cnpj = CNPJ()
        return mascara_cnpj.mask(self.cnpj)


exemplo = "49604705008"
documento = Documento.cria_documento(exemplo)
print(documento)

Ps.: Estou sentindo falta do código completo no fim da aula.

2 respostas
solução!

Oii Igor, tudo bem?

Isto ocorrendo por um pequeno errinho de sintaxe. Na classe DocCpf está escrito __int__, mas o correto é __init__. Com essa mudança o seu código deve funcionar como esperado =)

Sobre os arquivos, irei pedir para que a equipe disponibilize os códigos ao final do capítulo.

Qualquer dúvida é só falar. Abraços e bons estudos!

Nossa era só isso kkk, muito obrigada Nádia.

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