Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Bug] Meu terminal não mostra os simblolos

Já li e reli meu código, mas não .sei onde esta errado, pois meu terminal não mostra os simbolos

Código abaixo:

class Restaurante: restaurantes = []

def __init__(self, nome, categoria):
    self._nome = nome.title()
    self._categoria = categoria.upper()
    self._ativo = False
    Restaurante.restaurantes.append(self)

def __str__(self):
    return f'{self.nome} | {self.categoria}'


def listar_restaurantes():
    print(f'{'Nome do Restaurante'.ljust(25)} | {'Categoria'.ljust(25)} | {'Status'}')
    for restaurante in Restaurante.restaurantes:
        print(f'{restaurante._nome.ljust(25)} | {restaurante._categoria.ljust(25)} | {restaurante._ativo}')

@property
def ativo(self):
    return '☒' if self._ativo else '☐' 

def alternar_status(self):
    self._ativo = not self._ativo

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

Restaurante.listar_restaurantes()

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

1 resposta
solução!

Olá Jefferson,

No seu método listar restaurante tem que usar {restaurante.ativo} e não o _ativo.

Utilizando o _ativo você acessa o conteúdo da variável declarada lá no __init__, e para mostrar o símbolo deve ser utilizado a propriedade ativo, que é um método da classe.