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.