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