<br><br><div class="gmail_quote">On Jan 30, 2008 3:01 PM, Java &lt;<a href="mailto:quilospam@email.it">quilospam@email.it</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d"><br>&gt; Come risolve lo stesso problema Python? Il tipo è ininfluente, fare<br>&gt; funzioni che accettano un numero variabile di argomenti è banale,<br>&gt; comodo da gestire e piuttosto gradevole da leggere (again, named<br>
&gt; parameters).<br>&gt;<br>&gt;<br></div>Ora non esageriamo, non è che tutto ciò che fa python è bello e<br>fantastico e ciò che fanno altri linguaggi fa schifo.<br><br>L&#39;overloading è molto comodo proprio per migliorare la leggibilità del<br>
codice.<br><br>supponi di avere 10 metodi overloadati (ARGH!). E supponi che ognuno sia<br>di 100 righe di codice.<br>Secondo te è meglio avere un unico metodo con tutti gli if chee in base<br>alla combinazione di valori passati per parametro esegue uno o l&#39;altro<br>
ramo dell&#39;if-then-else?<br><br></blockquote></div><br><br>Se un metodo diventa tanto lungo, ci vuole un buon motivo...<br>se 10 metodi diventano tanto lunghi....<br>probabilmente è il momento di rifattorizzare.<br>E forse non c&#39;è bisogno di fare tutti questi if.<br>
La scelta idiomatica di python è, anziché usare<br>if caso1:<br>&nbsp;&nbsp;&nbsp; fn1()<br>elif caso2:<br>&nbsp;&nbsp; fn2()<br>elif caso3:<br>&nbsp;&nbsp; fn3()<br><br>ma è di mettere in un dizionario:<br>funzione = {&quot;caso1&quot;:fn1, &quot;caso2&quot;:fn2, &quot;caso3&quot;:fn3}<br>
poi hai la tua variabile mio_caso (che puo&#39; valere caso1, caso2, quello che ti pare)<br>e poi chiami <br>funzione[mio_caso]() <br><br>ciao<br>fra<br>