Não ficou claro a relação entre as classes Usuario e Lance, pois, para impressão da lista "leilão.lances", conforme trecho abaixo, para "valor" temos lance.valor e para "usuario", lance.usuario.nome, qual a razão de ter que adicionar "nome", já que ele não foi declarado na classe Lance?
for lance in leilao.lances:
print(f"O usuario {lance.usuario.nome} deu um lance de {lance.valor}")
Obrigado.