[Python] Stralcio di codice al volo

2011-02-11 Per discussione Vittorio Zuccala'
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-02-11 Per discussione Marco Beri
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

2011-02-11 Per discussione Enrico Franchi

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

2011-02-11 Per discussione Vittorio Zuccala'
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