Tentei fazer a máscara de CNPJ antes de assistir ao vídeo como um desafio me baseando na máscara de CPF.
Fiz diferente do vídeo.
Ao invés de criar um outro método formata_cnpj() e fazer uma lógica dentro de __str__(), para decidir qual dos dois métodos chamar formata_cnpj() ou formata_cpf(), eu troquei o nome do método que formatava CPF para formata_documento() e nela, ficou a lógica que decide se é CPF ou CNPJ .
E para a minha alegria.... Funcionou!!!
A dúvida é: (nem sei formular direito a pergunta...)
Poderia dar algum problema futuro, pensando que fosse um projeto real em uma empresa grande? Sei lá, algum problema no tempo de execução...? Ou no consumo de memória...?
Segue o meu código para análise da pessoa bondosa, que vai ter paciência de tentar entender a minha pergunta, que eu não sei se consegui formular direito (e juro que tentei melhor que isso...)
from validate_docbr import CPF, CNPJ
class CpfCnpj:
    def __init__(self, documento, tipo_documento):
        self.tipo_documento = tipo_documento
        documento = str(documento)
        if tipo_documento.lower() == "cpf":
            if self.cpf_eh_valido(documento):
                self.cpf = documento
            else:
                raise ValueError("CPF inválido!!!")
        elif self.tipo_documento.lower() == "cnpj":
            if self.cnpj_eh_valido(documento):
                self.cnpj = documento
            else:
                raise ValueError("CNPJ inválido!!!")
        else:
            raise ValueError("Documento inválido!!!")
    def __str__(self):
        return self.formata_documento()
    def cpf_eh_valido(self, documento):
        if len(documento) == 11:
            validador = CPF()
            return validador.validate(documento)
        else:
            raise ValueError("Quantidade de dígitos inválida!!!")
    def formata_documento(self):
        if self.tipo_documento.lower() == "cpf":
            mascara = CPF()
            return mascara.mask(self.cpf)
        elif self.tipo_documento.lower() == "cnpj":
            mascara = CNPJ()
            return mascara.mask(self.cnpj)
    def cnpj_eh_valido(self, cnpj):
        if len(cnpj) == 14:
            validate_cnpj = CNPJ()
            return validate_cnpj.validate(cnpj)
        else:
            raise ValueError("Quantidade de dígitos inválida!!!")