Oii Victor, tudo bem?
Obrigada por compartilhar sua resolução no fórum — com certeza vai ajudar outros alunos que passarem por essa atividade.
As soluções estão corretas! Tenho apenas duas considerações pontuais:
Exercício 3: A comparação restaurante_praca.ativo is True funciona, mas em Python é mais idiomático simplificar para if restaurante_praca.ativo:, já que o próprio valor booleano já serve como condição.
Exercício 4: O enunciado pede para acessar o atributo de classe diretamente da classe Restaurante, não da instância. A versão mais fiel ao pedido seria:
categoria = Restaurante.categoria
Acessar via instância (restaurante_praca.categoria) também funciona, mas há uma diferença conceitual: atributos de classe pertencem à classe e são compartilhados por todas as instâncias, então acessá-los diretamente pela classe deixa essa intenção mais explícita.
Se quiser aprofundar em OO com Python, a trilha Aprenda a programar em Python com Orientação a Objetos tem bastante conteúdo pra continuar evoluindo.
Conte com a Alura para evoluir seus estudos. Em caso de dúvidas, fico à disposição.
Bons estudos!
Sucesso ✨