Boa tarde, já tinha aberto este forum antes, mas vou refazer de novo,
Como foi dito na aula os arquivos de restaurante.py e avaliacao.py estão na mesma pasta:
quando eu escrevo no restaurante.py
from modelo.avaliacao import Avaliacao
aparece:
porem se eu escrevo:
from .avaliacao import Avaliacao
aparece:
e se eu tento executar o app.py da isso:
Alguem poderia me ajudar com esses dois problemas? Segue o código dos três arquivos para ajudar na verificação
restaurante.py
from .avaliacao import Avaliacao
class Restaurante:
restaurantes = []
def __init__(self, nome, categoria):
self._nome = nome.title()
self.categoria = categoria
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.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)
@property
def media_avaliacoes(self):
if not self._avaliacao:
return 0
soma_das_notas = sum(avaliacao._nota for avaliacao in self._avaliacao)
quantidade_de_notas = len(self._avaliacao)
media = round(soma_das_notas / quantidade_de_notas,1)
return media
app.py
from modelo.restaurante import Restaurante
restaurante_pequin = Restaurante('Pequin', 'Chines')
restaurante_pequin.receber_avaliacao('Gui',10)
restaurante_pequin.receber_avaliacao('Mat', 8)
restaurante_pequin.receber_avaliacao('Sony', 1)
def main():
Restaurante.listar_restaurantes()
if __name__ == '__main__':
main()
avaliacao.py
class Avaliacao:
def __init__(self, cliente, nota):
self._cliente = cliente
self._nota = nota