----Messaggio originale----
Da: tonin...@libero.it
Data: 10/09/2012 15.14
A: <depao...@gmail.com>
Ogg: R: Re: [Python] Richiamare funzione componendo il nome




----Messaggio originale----
Da: depao...@gmail.com
Data: 10/09/2012 13.58
A: "tonin...@libero.it"<tonin...@libero.it>, "Discussioni generali sul 
linguaggio Python"<python@lists.python.it>
Ogg: Re: [Python] Richiamare funzione componendo il nome





Il giorno 10 settembre 2012 12:47, tonin...@libero.it <tonin...@libero.it> ha 
scritto:

Salve, non so se si è capito il mio problema dall' oggetto del messaggio. Cmq
quello che voglio fare è richiamare una funzione esistente componendo il suo
nome.
Posto il codice.

def sequenza_domande():
    for n in ncasuali[:]: #lista riempita precedentemente con dei numeri
casuali
        "domanda_"+str(n)+"()" # richiamo una funzione componendo il nome

il problema è che non considera la chiamata.
C'è qualcuno che può aiutarmi?

oltre a quello che ti è già stato suggerito, puoi considerare di usare anche 
getattr dopo aver importato il modulo in cui è definita la funzione (codice non 
testato!):

m = __import__(__name__)
f = getattr(m, "domanda_"+str(n))

e poi chiami la funzione con:

f()

ciao,
Marco



Grazie Marco
con questo metodo è andato tutto liscio come l'olio, effettivamente richiama 
l'attributo nome, ed è molto utile perchè nel mio caso evito di fare uno switch 
con if..elif..else per esempio per 100 domande.








_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a