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

object has no attribute

Tentando praticar e fazer os exercicios como os exemplos da aula e me deparo com um erro.

Depois de tentar, até desistir e ter que copiar e colar o código disponível na página

Mesmo assim ainda aparece o erro

line 11, in __str__
    return self.format_numero()
AttributeError: 'TelefonesBr' object has no attribute 'format_numero'
2 respostas
solução!

Olá Matheus, tudo bem com você?

Esse erro que está sendo apresentado, está informando que ocorreu a tentativa de acesso a um método que não existe na classe TelefonesBr, neste caso o método format_numero.

Peço que confirme se o método format_numero está definido na classe TelefonesBr. Também que verifique a indentação (espaçamento) do método format_numero se ele está dentro da classe TelefonesBr.

O código da classe TelefonesBr, deve está conforme apresentado abaixo:

import re

class TelefonesBr:
    def __init__(self,telefone):
        if self.valida_telefone(telefone):
            self.numero = telefone
        else:
            raise ValueError("Número incorreto!")

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

    def valida_telefone(self,telefone):
        padrao = "([0-9]{2,3})?([0-9]{2})([0-9]{4,5})([0-9]{4})"
        resposta = re.findall(padrao,telefone)
        if resposta:
            return True
        else:
            return False

    def format_numero(self):
        padrao = "([0-9]{2,3})?([0-9]{2})([0-9]{4,5})([0-9]{4})"
        resposta = re.search(padrao,self.numero)
        numero_formatado = "+{}({}){}-{}".format(
            resposta.group(1),
            resposta.group(2),
            resposta.group(3),
            resposta.group(4)
        )
        return numero_formatado

Caso os pontos apresentados acima estejam corretos, peço que você poste o código completo em formato textual, para que eu possa te ajudar de forma mais precisa. Basta copiar o código, colá-lo na resposta desta postagem e enviar a postagem.

Não hesite em voltar ao fórum para continuar aprendendo e interagindo com a comunidade.

Em caso de dúvidas estou à disposição.

Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Era mesmo a identação, obrigado pelo esclarecimento