from modelos.avaliacao import Avaliacao
class Loja:
lojas = []
def __init__(self, nome, categoria):
self._nome = nome.title()
self._categoria = categoria.upper()
self._ativo = False
self._avaliacao = []
Loja.lojas.append(self)
def __str__(self):
return f'{self._nome} | {self._categoria}'
@classmethod
def listar_lojas(cls):
print(f'{'Nome do Restaurante'.ljust(25)} | {'Categoria'.ljust(25)} | {'Avaliações'.ljust(25)} | {'Status'}')
for loja in cls.lojas:
print(f'{loja._nome.ljust(25)} | {loja._categoria.ljust(25)} | {str(loja.media_avaliacoes).ljust(25)} | {loja._ativo}')
@property
def ativo(self):
return 'Verdadeiro' if self._ativo else 'Falso'
def alternado_status(self):
self._ativo = not self._ativo
def receber_avaliação(self, cliente, nota):
avaliacao = Avaliacao(cliente, nota)
self._avaliacao.append(avaliacao)
@property
def media_avalicoes(self):
if not self._avalicao:
return 0
soma_das_notas = sum(avaliacao._nota for avaliacao in self._avaliacao)
quantidade_de_notas = len(self._ativo)
media = round(soma_das_notas / quantidade_de_notas, 1)
return media
Depos de executa o codigo, fica aparecendo esse erro
Traceback (most recent call last):
File "C:\Users\Adriel\Workspace\oo-nuvem-shop\loja2.py", line 17, in <module>
main()
~~~~^^
File "C:\Users\Adriel\Workspace\oo-nuvem-shop\loja2.py", line 6, in main
Loja.listar_lojas()
~~~~~~~~~~~~~~~~~^^
File "C:\Users\Adriel\Workspace\oo-nuvem-shop\modelos\loja.py", line 22, in listar_lojas
print(f'{loja._nome.ljust(25)} | {loja._categoria.ljust(25)} | {str(loja.media_avaliacoes).ljust(25)} | {loja._ativo}')
^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'Loja' object has no attribute 'media_avaliacoes'. Did you mean: 'media_avalicoes'?
PS C:\Users\Adriel\Workspace\oo-nuvem-shop>