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

Syntax Error:invalid syntax

Olá pessoal!!

Estou tendo um problema com o código da aula:

from validate_docbr import CPF
from validate_docbr import 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("CONFIRA A QUANTIDADE DE NÚMEROS DO DOCUMENTO"

class DocCPF:
    def __init__(self,documento):
        if self.validacao(documento):
            self.cpf=documento
        else:
            raise ValueError("CPF INVALIDO")

    def __str__(self):#no metodo __str__ devo chamar a função que quero uma str como retorno
            return self.formatar()

    def validacao(self,documento): #o argumento 'documento' é usado como argumento dentro da função
        validador=CPF()
        return validador.validate(documento) #retorna boolean caso seja válido

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


class DocCNPJ:
    def __init__(self,documento):
        if self.validacao(documento):
            self.cpf=documento
        else:
            raise ValueError("CNPJ INVALIDO")

    def __str__(self):#no metodo __str__ devo chamar a função que quero uma str como retorno
        return self.formatar()

    def validacao(self,documento): #o argumento 'documento' é usado como argumento dentro da função
        validador=CNPJ()
        return validador.validate(documento) #retorna boolean caso seja válido

    def formatar(self):
        mascara=CNPJ() #intancio mascara na classe CNPJ
        return mascara.mask(self.cnpj)

main.py:

from cpf_cnpj import Documento
from validate_docbr import CPF
from validate_docbr import CNPJ

#cpf=13707960722
#cpf=str(cpf)
#objeto_cpf=CpfCnpj(cpf,"cpf") #chamou o método instanciado na classe Cpf

#print(objeto_cpf)

#cpf = CPF()

# Validar CPFs
#print(cpf.validate_list(["012.345.678-90", "012.345.678-91"]))

exemplo_cnpj="61532644000115"
#exemplo_cpf="32007832062"
#cnpj=CNPJ()
#print(cnpj.validate(exemplo_cnpj))
documento=Documento(exemplo_cnpj)
print(documento)

Ao tentar rodar, aparece o seguinte erro:

Traceback (most recent call last):
  File "C:/Users/vitor/PycharmProjects/validacoes/main.py", line 1, in <module>
    from cpf_cnpj import Documento
  File "C:\Users\vitor\PycharmProjects\validacoes\cpf_cnpj.py", line 14
    class DocCPF:
    ^
SyntaxError: invalid syntax

Já revisei o código todo e não conseguir entender o motivo do erro :/

Alguém conseguiria me dar uma luz?

Grande abraço!!

3 respostas
solução!

Boa Noite Vitor,

O que encontrei que pode estar causando esse erro é na linha 12 que está faltando um parenteses depois do "CONFIRA A QUANTIDADE DE NÚMEROS DO DOCUMENTO". Tenta colocar os parenteses e vê se funciona, se não funcionar procuro um pouco mais.

Olá Gabriel!

Muito obrigado pela ajuda! Isso corrigiu alguns dos erros que cometi. Tinha mais um erro que consegui enxergar depois desse que vc me ajudou:

class DocCNPJ:
    def __init__(self,documento):
        if self.validacao(documento):
            self.cpf=documento
        else:
            raise ValueError("CNPJ INVALIDO")

No iniciador, chamei sem querer o self.cpf ao invés de chamar self.cnpj, aí deu problema na classe formatar. Provavelmente foi na hora que copiei e colei o método da classe cpf. Mas quando eu alterei isso o código rodou certinho.

Que bom que deu tudo certo! O importante é isso!