na parte em que sai de praca para praca 2.0, quando executa, não aparece praca 2.0 mas apenas praca.. segue codigo abaixo
class Restaurante:
# Lista de restaurantes como variável de classe
restaurantes = []
def __init__(self, _nome, categoria):
self.nome = _nome.title() #title se usa para colocar algum nome ou titulo em letra maiuscula!
self.categoria = categoria.upper() #upper, se usa para escrever toda palavra em maiusculo.
self._ativo = False
Restaurante.restaurantes.append(self) # Adiciona o restaurante à lista de restaurantes
def __str__(self):
return f'{self.nome} | {self.categoria}'
@classmethod
def listar_restaurantes(cls):
print(f'{'Nome do restaurante'.ljust(25)} | {'categoria'.ljust(25)} | {'Status'}')
for restaurante in cls.restaurantes:
print(f'{restaurante.nome.ljust(25)} | {restaurante.categoria.ljust(25)} | {restaurante.ativo}')
@property
def ativo(self):
return '✅' if self._ativo else '❌'
@ativo.setter
def ativo(self, valor):
self._ativo = valor
# Criando instâncias da classe Restaurante
restaurante_praca = Restaurante('Praça', 'Gourmet')
restaurante_praca._nome = 'Praça 2.0'
restaurante_pizza = Restaurante('Pizza Express', 'Italiana')
# Listando os restaurantes
Restaurante.listar_restaurantes()