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

Projeto Data :)

class Data:

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

def formatada(self):
    print(" {}/{}/{}".format(self.dia,self.mes,self.ano))
2 respostas
solução!

Sugestão: Implemente mais um método usando a função mágica do Python str na sua classe, assim você pode criar um objeto e dar um print diretamente no objeto. Exemplo:

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

    #Altere o a função para retornar uma string e não dar um print
    def formatada(self):
        return "{}/{}/{}".format(self.dia,self.mes,self.ano)

    #utilize a magic function __str__ do python para que seu objeto consiga dar o print diretamente
    def __str__(self):
        return self.formatada()

#crie e utilize seu objeto diretamente:
minha_data = Data(21, 8, 2023)
print(minha_data)

Veja que desta forma ao utilizar sua classe o código fica mais limpo, não precisa chamar mais a função formatada, basta dar o print diretamente ou utilizar como quiser :)

Oii Thales, tudo bem?

Parabéns por ter desenvolvido o desafio que foi proposto no curso. Fico feliz que tenha compartilhado com a comunidade do fórum da Alura, assim, podemos ver seu desenvolvimento e ideias de implementação e seu código pode ainda ajudar os outros estudantes da plataforma :)

Uma dica de outra maneira que você pode implementar a sua data na sua função formatada() é através da formatação de string, em que podemos colocar a saída para um padrão determinado por nós, como mostrado no código abaixo:


def formatada(self):

print("{:02d}/{:02d}/{}".format(self.dia, self.mes, self.ano))

Resultado:


>>>data_teste = Data(1,9,2022)

>>>data_teste.formatada()

>>>01/09/2022

Nesse caso, o valor de formatação deve ser um inteiro (tipo int, definido como “d”), em que o :02d determina um campo de tamanho mínimo dois, em que o ‘0’ (zero) indica que se não houver pelo menos duas casas no número, ele será preenchido com um zero na esquerda dele, como ocorreu no exemplo acima.

Caso queira saber mais sobre formatação de strings, recomendo a leitura da documentação do Python sobre Entrada e Saída e se deseja se aprofundar mais ainda sobre a Linguagem Python, recomendo a formação Python e orientação a objetos na alura!

Muito obrigada por ter compartilhado seu código!

Grande abraço e bons estudos!

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

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