<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2015-07-17 14:33 GMT+01:00 Davide Muzzarelli <span dir="ltr"><<a href="mailto:d.muzzarelli@dav-muz.net" target="_blank">d.muzzarelli@dav-muz.net</a>></span>:</div><div class="gmail_quote"><br></div><div class="gmail_quote"><span style="color:rgb(80,0,80);font-size:12.8000001907349px">    Yes:   if greeting:</span><br style="color:rgb(80,0,80);font-size:12.8000001907349px"><span style="color:rgb(80,0,80);font-size:12.8000001907349px">    No:    if greeting == True:</span></div><div class="gmail_quote"><font color="#500050"><span style="font-size:12.8000001907349px"><br></span></font><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 id=":1a8" class="" style="overflow:hidden">Nel suggerimento la differenza tra "Yes" e "No" è solo sintassi.</div></blockquote><div><br></div><div>No. E' semantica. Nel primo caso stai di fatto andando a chiamare greeting.__nonzero__ se presente, se no greeting.__len__ e altrimenti e' semplicemente vero. Nel secondo invece stai andando a chiamare greeting.__eq__ (oppure greeting.__neq__ oppure greeting.__cmp__) oppure stai andando a confrontare gli id degli oggetti. </div><div><br></div><div>Tipicamente quei due frammenti non sono sintatticamente diversi: sono filosoficamente diversi. Sono pure ortogonali. Il caso in cui collassano e' essenzialmente se greeting e' un booleano o un'intero (o qualcosa che si comporta come tale).</div><div><br></div><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 id=":1a8" class="" style="overflow:hidden"> Il terzo caso invece non è affatto sintassi e lo usi quando vuoi essere sicuro anche del tipo. </div></blockquote><div><br></div><div>Il terzo, come i primi due, non e' solo sintassi e *non* lo usi. E se lo usi mettici dei bei commenti a spiegare perche' lo usi. Siccome nel 99.9% dei casi e' un bug, e' molto facile che il primo che ripassa sul codice te lo sega via. Per cui se c'era un buon motivo, e' bene specificarlo. </div><div><br></div><div>Tra l'altro in Python quando cominci a fare check espliciti sui tipi il codice puzzicchia. Ci sono motivi per farlo e niente da dire... ma sono *moolto* rari. </div><div><br></div><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 id=":1a8" class="" style="overflow:hidden">
Diventa worse se usi l'is quando non serve, ovvero nella maggioranza dei casi.<br></div></blockquote><div><br></div><div>Praticamente nella totalita'. Comunque sia == che is in quel caso sono moolto sospetti. </div></div><br><br clear="all"><div><br></div>-- <br><div class="gmail_signature"> .<br>..: -enrico-</div>
</div></div>