Meu código está dando erro ao executar,
A estrutura de pastas no momento está:
OO-SABOR-EXPRESS/
├── app.py
└── modelos/ ├── avaliacao.py └── restaurante.py
código em avaliacao.py:
class Avaliacao:
def __init__(self, cliente, nota):
self._cliente = cliente
self._nota = nota
código em 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)} | {'Avaliação'.ljust(25)} | {'Status'}')
for restaurante in cls.restaurantes:
print(f'{restaurante._nome.ljust(25)} | {restaurante._categoria.ljust(25)} | {restaurante.media_avaliacoes} | {restaurante.ativo}')
@property
def ativo(self):
return '⌧' if self._ativo else '☐'
def alternar_estado(self):
self._ativo = not self._ativo4
def receber_avaliacao(self, cliente, nota):
avaliacao = Avaliacao(cliente, nota)
self._avaliacao.append(avaliacao)
@property
def media_avaliacoes(self):
if not self._avaliacao:
return 'Sem avaliações'
soma_das_notas = sum(avaliacao._notas for avaliacao in self._avaliacao)
quantidade_de_notas = len(self._avaliacao)
media = round(soma_das_notas / quantidade_de_notas, 1)
return media
código em app.py:
from modelos.restaurante import Restaurante
restaurante_Plaza = Restaurante('Plaza', 'Gourmet')
restaurante_Plaza.receber_avaliacao('Vinicius', 9)
restaurante_Plaza.receber_avaliacao('Nerdola', 5)
restaurante_Plaza.receber_avaliacao('Ferreira', 11)
restaurante_mexicano = Restaurante('Chicos', 'Mexicano')
restaurante_formula = Restaurante('F1 Foods', 'Tematico')
restaurante_mexicano.alternar_estado()
def main():
Restaurante.listar_restaurantes()
if __name__ == '__main__':
main()
Erro ao executar o app.py:
Traceback (most recent call last): File "D:- Arquivos Pessoais\Cursos, Estudos, Música e Desenhos\Alura\Python\curso-python-2-aula_3\OO-SABOR-EXPRESS\app.py", line 1, in from modelos.restaurante import Restaurante File "D:- Arquivos Pessoais\Cursos, Estudos, Música e Desenhos\Alura\Python\curso-python-2-aula_3\OO-SABOR-EXPRESS\modelos\restaurante.py", line 1, in from modelos.avaliacao import Avaliacao ImportError: cannot import name 'Avaliacao' from 'modelos.avaliacao' (D:- Arquivos Pessoais\Cursos, Estudos, Música e Desenhos\Alura\Python\curso-python-2-aula_3\OO-SABOR-EXPRESS\modelos\avaliacao.py)