#Código 1:
class Avaliacao:
def __init__(self,cliente,nota):
self._cliente = cliente
self._nota = nota
#Código 2:
from modelos.avaliacao import Avaliacao
class Restaurante:
restaurantes = []
def __init__(self,nome,categoria):
self._nome = nome.title() # '_' é camada de segurança para o nome não ser alterado
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):
for restaurante in cls.restaurantes:
print(f'{'Nome do Restaurante'.ljust(25)} | {'Categoria'.ljust(25)} | {'Status'.ljust(25)}')
print(f'{restaurante._nome.ljust(25)} | {restaurante.categoria.ljust(25)} | {restaurante.ativo.ljust(25)}')
@property #modificar como o atributo vai ser lido
def ativo (self):
return 'Sim' if self._ativo else 'Não'
def alternar_estado(self):
self._ativo = not self._ativo
def receber_avaliacao(self,cliente,nota):
avaliacao = Avaliacao(cliente,nota)
self._avaliacao.append(avaliacao)
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 = soma_das_notas / quantidade_de_notas
#Código 3:
from modelos.restaurante1 import Restaurante
restaurante_praca = Restaurante('Praça','Gourmet')
restaurante_praca.receber_avaliacao('Gui', 5)
restaurante_praca.receber_avaliacao('Bruno', 4)
def main():
Restaurante.listar_restaurantes()
if name == 'main':
main()
Erro:
from modelos.avaliacao import Avaliacao
ImportError: cannot import name 'Avaliacao' from 'modelos.avaliacao' (c:\Users\bruno\Desktop\Estudos\oosaborexpress\modelos\avaliacao.py). Did you mean: 'avaliacao'?
PS C:\Users\bruno\Desktop\Estudos\oosaborexpress> & C:\Python314\python.exe c:/Users/bruno/Desktop/Estudos/oosaborexpress/modelos/restaurante1.py
Traceback (most recent call last):
File "c:\Users\bruno\Desktop\Estudos\oosaborexpress\modelos\restaurante1.py", line 1, in
from modelos.avaliacao import Avaliacao
ModuleNotFoundError: No module named 'modelos'
PS C:\Users\bruno\Desktop\Estudos\oosaborexpress> & C:\Python314\python.exe c:/Users/bruno/Desktop/Estudos/oosaborexpress/app.py
Traceback (most recent call last):
File "c:\Users\bruno\Desktop\Estudos\oosaborexpress\app.py", line 1, in
from modelos.restaurante1 import Restaurante
File "c:\Users\bruno\Desktop\Estudos\oosaborexpress\modelos\restaurante1.py", line 1, in
from modelos.avaliacao import Avaliacao
ImportError: cannot import name 'Avaliacao' from 'modelos.avaliacao' (c:\Users\bruno\Desktop\Estudos\oosaborexpress\modelos\avaliacao.py). Did you mean: 'avaliacao'?