1
resposta

Meu codigo

Separei em duas partes meu código e queria saber se há algum jeito de melhorar, se fiz algo de errado ou redundâncias.

Primeira parte:

from validate_docbr import CPF


class ValidandoCPF:
    def __init__(self, meucpf):
        self.meucpf = meucpf.strip().replace(".", "").replace("-", "")
        self.cpf = CPF()

    def validar(self, meucpf):
        if len(self.meucpf) == 11:
            if self.cpf.validate(meucpf):
                return True
            else:
                raise LookupError("!!! CPF INVALIDO !!!")
        else:
            raise LookupError("!!! DIGITOS DE CPF INVALIDO !!!")

    def formatar(self):
        return self.cpf.mask(self.meucpf)

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

Segunda parte:

from certificadopessoafisica import ValidandoCPF


meucpf = input("Digite seu cpf: ")

cpf = ValidandoCPF(meucpf)
cpf.validar(meucpf)
cpf.formatar()

print(cpf)
1 resposta

Oiii Caio, como você está? Espero que esteja bem ^-^

Seu código está correto e foi excelente a tática de separar o código de acordo com a responsabilidade de cada um. Ou seja, um arquivo que contém apenas a classe e outro os testes da classe.

Algumas considerações:

  • É convenção que as variáveis em Python sigam o padrão snake_case quando houver espaço entre elas, ou seja, separadas pelo underline. Por exemplo: meucpf se tornaria meu_cpf seguindo o padrão snake_case.

  • O nome do módulo/arquivo, também pode conter underline. Então onde temos: certificadopessoafisica passaria a ser certificado_pessoa_fisica.

Lembrando que é apenas uma convenção, não é obrigatório.

Essas convenções e outras, são encontradas no Guia de Estilo da linguagem Python, a PEP8. Deixo abaixo o link desse guia de estilos:

Qualquer dúvida estou por aqui, tá bom?

Grande abraço!