a minha ideia, foi: ao invés de fazer todo um código de comparação entre os valores de uma lista, pra jogar esses valores dentro de uma variável. pq não criar uma variável (ou uma função) que retorna o valor máximo (ou mínimo) de uma lista?
código como feito no vídeo da aula 03:
class Leilao:
def __init__(self, descricao):
self.descricao = descricao
self.__lances = []
self.maior_lance = sys.float_info.min
self.menor_lance = sys.float_info.max
def adiciona(self, lance: Lance):
#aqui está a comparação dos valores em self.__lances
if lance.valor > self.maior_lance:
self.maior_lance = lance.valor
if lance.valor < self.menor_lance:
self.menor_lance = lance.valor
self.__lances.append(lance)
@property
def lances(self):
return self.__lances[:]
aqui está minha ideia (no caso como atributos da classe):
class Leilao:
def __init__(self, descricao):
self.descricao = descricao
self.__lances = []
self.maior_lance = max(self.__lances) #retorna maior valor da lista
self.menor_lance = min(self.__lances) #retorna menor valor da lista
def adiciona(self, lance: Lance):
self.__lances.append(lance)
@property
def lances(self):
return self.__lances[:]
apesar deu não entender mto bem o pq não funcionou, apareceu a msgm: '>' not supported between instances of Lance and Lance. quer dizer que numa lista com instâncias do tipo "Lance" eu não posso comparar? Teria algo como "def __ getitem__(self, item):" para eu herdar um duck typing de comparação? PS: tentei usar "def __ getitem__(self, item):" e não consegui