> In questi casi, io dico solo che puoi:
>
> 1. associare alle chiavi delle lambda
>
> {'a': lambda: ...,
>  'b': lambda: ...,
>  ...}[k]()
>
> 2. associare alle chiavi delle funzioni fatte con def
>
> def cl1(...): ...
> def cl2(...): ...
>
> {'a': cl1,
>  'b': cl2,
>  ...}[k]()
>
> 3. usare una classe (o al limite un modulo)
>
> class Dispatch(object):
>    def a(...): ...
>
>    def b(...): ...
>    ...
>
> getattr(Dispatch(), k)()
>
>
>
Per il poco che so esiste anche elif che trovo piĆ¹ immediato rispetto alle
altre soluzioni, anche se meno "figo" e forse in certi casi meno efficiente

4. usare gli elif:

if test=='a':
    print 1
elif test=='b':
    print 2
elif ....



-- 
----------------------------------------------------------------------
Giuseppe Amato
e-mail: giuam...@gmail.com
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a