Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

1
resposta

Se o objetivo era confundir, deu certo.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade
restarante, Restaurante, restaurantes
3 palavras parecidas para coisas diferentes, poderia ser mais didatico isso... tipo:

lista_restaurantes, objeto_restaurante, etc.

Pra quem ta começando com programação e vê tanta coisa parecida, parece uma sopa de letrinhas...

1 resposta

Olá, Wanderson! Como vai?

Entendo sua situação mediante os nomes das variáveis.

Por isso usar nomes claros e descritivos para variáveis e métodos é uma prática recomendada, pois ajuda a entender o que cada parte do código faz.

Nesse exemplo, poderíamos usar nomes como lista_de_restaurantes para a lista que armazena os objetos, e objeto_restaurante para cada instância da classe Restaurante. Isso tornaria o código mais legível e intuitivo.

Aqui está como o código poderia ficar com essas sugestões:

class Restaurante:
    lista_de_restaurantes = []

    def __init__(self, nome, categoria):
        self.nome = nome
        self.ativo = False
        self.categoria = categoria
        Restaurante.lista_de_restaurantes.append(self)
    
    def __str__(self):
        return f'{self.nome} | {self.categoria}'
    
    def listar_restaurantes():
        for objeto_restaurante in Restaurante.lista_de_restaurantes:
            print(f'{objeto_restaurante.nome} | {objeto_restaurante.categoria} | {objeto_restaurante.ativo}')

restaurante_praca = Restaurante('Praça', 'Gourmet')
restaurante_pizza = Restaurante('Pizza Express', 'Italiana')

Restaurante.listar_restaurantes()

Espero que isso ajude a tornar o código mais claro para você!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado