Oi, Luís Henrique!
Parabéns por concluir essa sequência de atividades. É excelente ver como você explorou a criação de classes e a manipulação de instâncias, que são os pilares da Orientação a Objetos.
Sua resolução demonstra um domínio muito bom sobre como os objetos carregam seus próprios estados em Python. Ao instanciar restaurante_praca e restaurante_pizza, você praticou a essência da OO: usar um mesmo molde (a classe Restaurante) para criar elementos distintos com características próprias. O uso da função vars() na atividade 6 é uma ótima escolha, pois ajuda a visualizar como o Python armazena os atributos dentro do objeto de forma organizada.
Observação sobre atributos de Classe vs. Instância
Para elevar ainda mais o nível do seu código, vale notar um detalhe técnico nas atividades 4 e 5. Quando você faz Restaurante.nome = 'Churrascaria', você está alterando o atributo diretamente na classe (o molde).
Em Python, o ideal é sempre manipular as instâncias (como você fez com restaurante_pizza.nome). Alterar a classe diretamente pode fazer com que todos os novos restaurantes que você criar já nasçam com o nome "Churrascaria" por padrão, o que nem sempre é o desejado. Você pode conferir mais detalhes sobre essa diferença na documentação oficial sobre classes e instâncias.
Conseguiu perceber como a Orientação a Objetos facilita a organização do código quando precisamos lidar com muitos itens do mesmo tipo, como uma lista de centenas de restaurantes?
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!