[Python] diversi __init__ ??

Francesco Guerrieri f.guerrieri a gmail.com
Mer 30 Gen 2008 15:18:56 CET


On Jan 30, 2008 3:01 PM, Java <quilospam a email.it> wrote:

>
> > Come risolve lo stesso problema Python? Il tipo è ininfluente, fare
> > funzioni che accettano un numero variabile di argomenti è banale,
> > comodo da gestire e piuttosto gradevole da leggere (again, named
> > parameters).
> >
> >
> Ora non esageriamo, non è che tutto ciò che fa python è bello e
> fantastico e ciò che fanno altri linguaggi fa schifo.
>
> L'overloading è molto comodo proprio per migliorare la leggibilità del
> codice.
>
> supponi di avere 10 metodi overloadati (ARGH!). E supponi che ognuno sia
> di 100 righe di codice.
> Secondo te è meglio avere un unico metodo con tutti gli if chee in base
> alla combinazione di valori passati per parametro esegue uno o l'altro
> ramo dell'if-then-else?
>
>

Se un metodo diventa tanto lungo, ci vuole un buon motivo...
se 10 metodi diventano tanto lunghi....
probabilmente è il momento di rifattorizzare.
E forse non c'è bisogno di fare tutti questi if.
La scelta idiomatica di python è, anziché usare
if caso1:
    fn1()
elif caso2:
   fn2()
elif caso3:
   fn3()

ma è di mettere in un dizionario:
funzione = {"caso1":fn1, "caso2":fn2, "caso3":fn3}
poi hai la tua variabile mio_caso (che puo' valere caso1, caso2, quello che
ti pare)
e poi chiami
funzione[mio_caso]()

ciao
fra
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: http://lists.python.it/pipermail/python/attachments/20080130/3f7d6aa1/attachment.htm 


More information about the Python mailing list