2
respostas

Desafio Opcional - Datas

Esse foi meu código do desafio opcional:

class Datas:

print('Digite a data -> Dia, Mes, Ano')

def __init__(self, dia, mes, ano):
    self.dia = dia
    self.mes = mes
    self.ano = ano
    print('{}/{}/{}'.format(self.dia, self.mes, self.ano ))

Gostaria de saber se poderia ser assim? Tive a ideia de tirar o d.formata( ), pois acreditei que o código seria mais compacto.

Estaria correta a implementação assim?

2 respostas

Olá, João. Tudo bom?

O problema de se tirar o método, é que o print será utilizado toda vez que se criar um novo objeto e nem sempre é isso que queremos. Outro problema é que ele não pode ser chamado novamente depois. Para consultar novamente a data de determinada conta, você teria que inserir todos os valores manualmente como na imagem abaixo :

Foto 1

Uma outra dica que eu dou é formatar a data para um padrão dd/mm/aaaa (2 dígitos para dia e mês e 4 para ano). A forma que eu utilizei pra fazer isso foi :

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

Ao utilizar o :02 após a variável, eu peço ao python que complete com 0 os espaços vazios até que tenham 2 espaços completos, ou seja, se você digitar 1/1/1992, a data será formatada para 01/01/1992

Foto 2

Nos cursos mais avançados de Python você conhecerá também outras formas de se trabalhar com datas, como utilizando a biblioteca datetime. Caso queira dar uma olhada, tem este artigo da Alura mesmo falando sobre o datetime : Lidando com datas e horários no Python

Espero ter ajudado.

Muito obrigado!