<div dir="ltr">Il giorno 27 settembre 2013 13:26, Piergiuliano Bossi <span dir="ltr"><<a href="mailto:pgbossi@gmail.com" target="_blank">pgbossi@gmail.com</a>></span> ha scritto:<br><div class="gmail_extra"><div class="gmail_quote">

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><div>V2<br></div><div>    def value_at_max(values, functor):</div>

<div>        max_value = None<span style="white-space:pre-wrap">                              </span># si usano trucchetti come questo con None o ci sono modi migliori?</div><div>        for value in values:</div>
<div>            if not max_value or functor(value) > functor(max_value):</div><div>                max_value = value</div><div>        return max_value</div><div><br></div><div>    def _max_value(self):</div><div>        return value_at_max(self._values, lambda v: v.func())</div>


<div></div></div></blockquote><div><br></div><div>Probabilmente non ho capito, ma non mi tornano un paio di cose:</div><div><br></div><div>1. se `functor = lambda v: v.func()` e `max_value = None` allora `functor(max_value) = None.func()`, che però non va bene.</div>

<div><br></div><div>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.</div>

<div><br></div><div>Mi sono perso qualcosa?<br></div></div>
</div></div>