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

Erro "atributo" não definido.

Código:

class Data:

    def __init__(self, dia, mes, ano):
        self.dia = dia
        self.mes = mes
        self.ano = ano

    def formatada(self):
        print(f"{self.dia}/{self.mes}/{self.ano}")

Execução (no "cmd"):

from datas import Data

d = Data(8,4,2021)

d.formatada()

Retorna o erro:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\Gustavo\AulasPython\oo\datas.py", line 9, in formatada
    print(f"{self.dia}/{self.mes}/{self.ano}")
NameError: name 'dia' is not defined

Não to entendendo o porque do erro, já executei o comando:

d.dia

E retorna certinho o valor 8 ...

Alguém da uma luz ai ? kkkkk

2 respostas

Opa Gustavo, tente alterar as aspas duplas por simples

class Data:

    def __init__(self, dia, mes, ano):
        self.dia = dia
        self.mes = mes
        self.ano = ano

    def formatada(self):
        print(f'{self.dia}/{self.mes}/{self.ano}')


import datas

data = datas.Data(08, 04, 2021)
data.formatada()

saída esperada: 08/04/2021

solução!

Fala Elton, muito obrigado pela resposta.

Mas acredito que o ponto não seja as aspas, pois agora que você mandou a mensagem, fui testar novamente e está funcionando normalmente mesmo com as aspas duplas.

Acredito que o problema estava vindo do acumulo de tentativas e erros na mesma janela do prompt, pois agora abri com uma nova janela do prompt e funcionou ...

Continuo sem saber o que houve, mas vou finalizar o tópico pois agora ta funcionando.