1
resposta

Meu código não apresentou o erro mencionado pelo instrutor

Bom dia. Meu código não apresentou o erro em questão. Há alguma explicação para isso, por exemplo, versão do Python, do sistema operacional do computador ou o editor de código utilizado? No caso, utilizo o Python 3.9.0 em um macOS Big Sur 11.1 e o Visual Studio Code 1.52.1. Seguem os códigos:

#dominio.py

import sys

class Usuario:
    def __init__(self, nome):
        self.__nome = nome

    @property
    def nome(self):
        return self.__nome


class Lance:
    def __init__(self, usuario, valor):
        self.usuario = usuario
        self.valor = valor


class Leilao:
    def __init__(self, descricao):
        self.descricao = descricao
        self.__lances = []

    @property
    def lance(self):
        return self.__lances


class Avaliador:
    def __init__(self):
        self.maior_lance = sys.float_info.min
        self.menor_lance = sys.float_info.max

    def avaliar(self, leilao: Leilao):
        for lance in leilao.lance:
            if lance.valor > self.maior_lance:
                self.maior_lance = lance.valor
            elif lance.valor < self.menor_lance:
                self.menor_lance = lance.valor
#principal.py

from dominio import Usuario, Lance, Leilao, Avaliador

gui = Usuario('Gui')
yuri = Usuario('Yuri')
paulo = Usuario('Paulo')

lance_do_gui = Lance(gui, 150.0)
lance_do_yuri = Lance(yuri, 100.0)
lance_do_paulo = Lance(paulo, 155.0)

leilao = Leilao('Celular')
leilao.lance.append(lance_do_paulo)
leilao.lance.append(lance_do_gui)
leilao.lance.append(lance_do_yuri)

for lance in leilao.lance:
    print(f'O usuário {lance.usuario.nome} deu um lance de {lance.valor}')

avaliador = Avaliador()
avaliador.avaliar(leilao)

print(f'O menor lance foi de {avaliador.menor_lance} e o maior lance foi de {avaliador.maior_lance}')

PS: O código funciona, consegui implementar o teste e fazer toda a atividade proposta no módulo. A dúvida é tão somente relativa ao fato de que não obtive o erro esperado.

1 resposta

para apresentar o erro precisa alterar a ordem no "append", o meu tb não estava gerando erro quando alterava a ordem das variáveis, mas quando alterei a ordem do append gerou, o video ficou muito vago a isso!