Olá Juliano, tudo bem com você?
Meus parabéns pela implementação do código da atividade, fico feliz que tenha compartilhado-o com a comunidade do fórum Alura. Sua explicação ficou excelente, ela irá contribuir bastante para o desenvolvimento de todos os alunos e alunas que lerem sua postagem. 
Gostaria de aproveitar a oportunidade e deixar uma dica de implementação. No Python temos a biblioteca datetime que permite trabalharmos com a manipulação e validação de data e horas com uma maior facilidade, assim, podemos trabalhar com as exceções e levantamento de erros de uma forma prática. 
Para implementar o uso da biblioteca datetime na classe Data e criarmos uma validação das datas e realizar o levantamento de erro e exceções usaremos as cláusulas try / except. Com isso, o método inicializador irá tentar (try) criar um objeto com a biblioteca datetime exceto (except)  quando essa tentativa elevar erro de valor (ValueError).  
Essa implementação será feita no método inicializador (__init__) como apresentado abaixo: 
def __init__(self, ano, mes, dia, hora, minuto):
    try:
        self.data = datetime.datetime(ano, mes, dia, hora, minuto)
    except ValueError as e:
        raise ValueError(e)
No código acima, será realizada a tentativa da declaração do atributo data, exceto quando os valores informados geram erro. 
Para exibir a data com a formatação, usaremos o método strftime da biblioteca datetime. Como apresentado abaixo.
def formata(self):
    print(self.data.strftime('%d/%m/%Y %H:%M'))
No código acima é utilizado códigos de formatação para transformar a saída no padrão Brasileiro, onde:
- %d significa dia entre 01 e 31
- %m significa número do mês
- %Y significa ano, com a versão completa, Ex.: 2023
- %H significa hora entre 00 e 23
- %M significa minutos
Caso alguma regra das apresentadas acima seja burlada, obteremos o erro de ValueError.
Por ser um recurso no formato estrangeiro, no momento da criação do objeto devemos informar os valores na seguinte ordem: ano, mês, dia, hora, minutos. Como apresentado abaixo.
data = Data(2023, 1, 21, 7, 0)
Código completo com as mudanças necessárias
import datetime
class Data:
    def __init__(self, ano, mes, dia, hora, minuto):
        try:
            self.data = datetime.datetime(ano, mes, dia, hora, minuto)
        except ValueError as e:
            raise ValueError(e)
    def valida(self):
        print(self.data.strftime('%d/%m/%Y %H:%M'))
data = Data(2023, 1, 21, 7, 0)
data.valida()
Resultado
21/01/2023 07:00
Para aprimorar ainda mais o seu aprendizado sobre a biblioteca datetime, recomendo a leitura dos artigos abaixo, onde será abordado com detalhes sobre o uso e aplicações dessa biblioteca.
O segundo artigo recomendado acima está em inglês, o uso da língua inglesa é bem comum na área de tecnologia, mas não se preocupe, caso não tenha afinidade com essa linguagem, recomendo que utilize o tradutor do navegador para uma melhor compressão.
Lembre-se que pode contar sempre com o fórum Alura, seja para compartilhar o seu desenvolvimento ou para tirar suas dúvidas.
Fico à disposição.
Abraços e bons estudos.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!