PS C:\Alura\PYTHON - ORIENTADO A OBJETOS - OO\OO-Sabor-Express> python app.py Nome do Restaurante | Categoria | Avaliação | Status Traceback (most recent call last): File "C:\Alura\PYTHON - ORIENTADO A OBJETOS - OO\OO-Sabor-Express\app.py", line 11, in main() File "C:\Alura\PYTHON - ORIENTADO A OBJETOS - OO\OO-Sabor-Express\app.py", line 8, in main Restaurante.lista_restaurantes() File "C:\Alura\PYTHON - ORIENTADO A OBJETOS - OO\OO-Sabor-Express\modelos\restaurante.py", line 19, in lista_restaurantes print(f'{restaurante._nome.ljust(25)} | {str(restaurante._categoria.ljust(25))} | {restaurante.media_avaliacoes.ljust(25)} | {restaurante.ativo}') ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ AttributeError: 'float' object has no attribute 'ljust' PS C:\Alura\PYTHON - ORIENTADO A OBJETOS - OO\OO-Sabor-Express>
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 lista_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)} | {str(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
avaliacao.py
class Avaliacao:
def __init__(self, cliente, nota):
self._cliente = cliente
self._nota = nota
app.py
from modelos.restaurante import Restaurante
restaurante_pizzaria = Restaurante ('Pizzaria de Bibi', 'Pizzaria')
restaurante_pizzaria.receber_avaliacao ('Bibi', 10)
restaurante_pizzaria.receber_avaliacao ('Alvaro', 10)
def main():
Restaurante.lista_restaurantes()
if __name__ == '__main__':
main()