1
resposta

Parou de realizar o print do código

Boa tarde:

O programa parou de realizar o print quando criei o app.py:

restaurante.py:

from modelos.avaliacao import Avaliacao

class Restaurante: restaurantes = [] def init(self, nome, categoria): self._nome = nome.title() self._categoria = categoria.upper() self._ativo = False self._avaliacao = [] Restaurante.restaurantes.append(self)

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 '☐'

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

def receber_avaliacao(self, cliente, nota):
    avaliacao = Avaliacao(cliente, nota)
    self._avaliacao.append(avaliacao)

Criei o app.py na raiz:

from modelos.restaurante import Restaurante

restaurante_praca = Restaurante('praça', 'gourmet') restaurante_praca.receber_avaliacao('Gui', 10) restaurante_praca.receber_avaliacao('Lais', 8) restaurante_praca.receber_avaliacao('Emy', 5)

def main(): Restaurante.listar_restaurantes()

if name == 'main': main()

E criei o avaliação dentro de modelos:

class Avaliacao: def init(self, cliente, nota): self._cliente = cliente self._nota = nota

Insira aqui a descrição dessa imagem para ajudar na acessibilidadeRodei o programa e nada apareceu, nem mensagem de erro, kkkkkkkkkkkkkkkk. Aguardo uma luz para dar sequÊncia com o curso. Obrigado!

1 resposta

Olá, Tarcísio.

Tudo bem?

Pelo que você descreveu e pela imagem que você compartilhou, parece que o problema está na verificação do if __name__ == '__main__': no seu arquivo app.py. No Python, essa condição é usada para executar o código dentro do bloco apenas se o script for executado diretamente, e não importado como um módulo.

No seu caso, você escreveu '_main_' em vez de '__main__'. Devido a isso, o bloco de código dentro do if não está sendo executado quando você roda o script. Para corrigir o problema, você deve substituir '_main_' por '__main__':

if __name__ == '__main__':
    main()

Essa mudança deve fazer com que o código dentro da função main() seja executado, permitindo que as informações dos restaurantes sejam impressas como esperado.

Espero que essa correção resolva o problema! Se precisar de mais alguma coisa, estamos aqui para ajudar. Qualquer dúvida manda aqui. Bons estudos.