Il giorno 30/dic/2011, alle ore 15:50, Giuseppe Amato ha scritto: > 3. usare una classe (o al limite un modulo) > > class Dispatch(object): > def a(...): ... > > def b(...): ... > ... > > getattr(Dispatch(), k)()
Dal momento che il problema di uno switch capita comunque quasi sempre all interno di una classe una tecnica abbastanza comoda è quella di usare dei metodi con opportuno prefisso ad esempio: def foo_alfa(self,...): ..... def foo_beta(self,...): ..... def foo_gamma(self,...): ..... def foo_default(self,...): ..... e nel codice chiamare bar = getattr(self,'foo_%s'%k,self.foo_default)(....) Aggiungere i casi è molto semplice e in caso di ereditarietà la classe derivata può agevolmente estendere lo switch. G _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python