Il giorno 27 settembre 2013 13:26, Piergiuliano Bossi <pgbo...@gmail.com>ha scritto:
> V2 > def value_at_max(values, functor): > max_value = None # si usano trucchetti come questo con None o ci > sono modi migliori? > for value in values: > if not max_value or functor(value) > functor(max_value): > max_value = value > return max_value > > def _max_value(self): > return value_at_max(self._values, lambda v: v.func()) > Probabilmente non ho capito, ma non mi tornano un paio di cose: 1. se `functor = lambda v: v.func()` e `max_value = None` allora `functor(max_value) = None.func()`, che però non va bene. 2. V1 e V2 non mi sembrano avere lo stesso comportamento, perchè mentre V2 restituisce il primo `value` che è non "falsy" e per il quale vale `functor(value) > functor(max_value)` (dato che la condizione si corto-circuita e non vengono effettuati altri confronti), invece V1 restituisce l'i-esimo elemento di `self._values` per il quale `self._values[i].func() restituisce il valore massimo. Mi sono perso qualcosa?
_______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python