[Python] Stralcio di codice al volo
Buongiorno a tutti, ho un problemino che non so come affrontare.. Ho una classe con due metodi che a breve potrebbero crescere di numero. A seconda del parametro passato in __init__, la classe deve avviare un metodo anzichè un altro. All'inizio ho pensato ad utilizzare un IF ma se il numero di metodi cresce diventerebbe difficile da gestire... C'è un modo per dire: eseguimi la funzione che ha il nome del parametro passato? Di seguito uno stralcio di codice... class Campi(object): def __init__(self, parametro): #qualcosa che gli dica: se parametro è pippo lancia pippo, se è pluto lancia pluto e così via. def pluto(self): # fai qualcosa def pippo(self): # fai qualcosa di altro ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Stralcio di codice al volo
2011/2/11 Vittorio Zuccala' vittorio.zucc...@gmail.com Buongiorno a tutti, ho un problemino che non so come affrontare.. Ho una classe con due metodi che a breve potrebbero crescere di numero. A seconda del parametro passato in __init__, la classe deve avviare un metodo anzichè un altro. All'inizio ho pensato ad utilizzare un IF ma se il numero di metodi cresce diventerebbe difficile da gestire... C'è un modo per dire: eseguimi la funzione che ha il nome del parametro passato? Di seguito uno stralcio di codice... class Campi(object): def __init__(self, parametro): #qualcosa che gli dica: se parametro è pippo lancia pippo, se è pluto lancia pluto e così via. def pluto(self): # fai qualcosa def pippo(self): # fai qualcosa di altro getattr(self, parametro)() -- http://thinkcode.tv/gratis - Capire in 15 minuti cosa può fare Python http://stacktrace.it - Aperiodico di resistenza informatica http://python.thinkcode.tv - Videocorso di Python http://beri.it - Blog di una testina di vitello ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Stralcio di codice al volo
Vittorio Zuccala' wrote: C'è un modo per dire: eseguimi la funzione che ha il nome del parametro passato? getattr te lo acchiappa, poi ci fai quello che vuoi, compreso eseguirlo. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Stralcio di codice al volo
Grandioso! def ritornaCampi(self,tabella): metodo = getattr(self, tabella) campi=metodo() return campi Il giorno 11 febbraio 2011 10:56, Enrico Franchi enrico.fran...@gmail.comha scritto: Vittorio Zuccala' wrote: C'č un modo per dire: eseguimi la funzione che ha il nome del parametro passato? getattr te lo acchiappa, poi ci fai quello che vuoi, compreso eseguirlo. -- . ..: -enrico- ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python