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

Python OO - 03. Implementando Métodos - 09. Desafio Opcional

class Data:
    def __init__(self, d, m, a):
        self.dia = d
        self.mes = m
        self.ano = a

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

data = Data(10, 8, 2022).formatada()

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

3 respostas
solução!

Olá, primeiramente vamos resolver alguns erros de identação.

class Data(): 
    def __init__(self, d, m, a): 
        self.dia = d 
        self.mes = m 
        self.ano = a

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

minha_data = Data(d=10, m=8, a=2022)

print(minha_data.formatada())

Com o código acima podemos visualizar a execução correta pois:

  • A classe foi definida da forma correta (com os parenteses)
  • O método 'init' necessita dos dois _ (underline) antes e após a palavra 'init'
  • A função 'formatada' deve estar dentro do escopo da classe para que consiga acessar o 'self'
  • Ao chamar a classe instanciamos uma variável 'minha_data' com o objeto 'Data()' e seus respectivos parâmetros
  • Logo após acessamos o nosso objeto criado e chamamos a propriedade 'formatada()' Espero ter ajudado, bons estudos :)

Bom dia, Matheus.

Eu editei a postagem, errei a formatação na hora de postar no fórum, a maior parte do código não saiu como código.

Com relação a variável, eu passei ela direto do Data() como parâmetro, na ordem pré-definida, apenas pra simplificar.

Obrigado pela ajuda!

Bom dia, por nada, se puder marcar o post como resolvido ficaríamos gratos :)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software