[Python] I: Re: Richiamare funzione componendo il nome
tonino73 a libero.it
tonino73 a libero.it
Lun 10 Set 2012 15:57:11 CEST
----Messaggio originale----
Da: tonino73 a libero.it
Data: 10/09/2012 15.14
A: <depaolim a gmail.com>
Ogg: R: Re: [Python] Richiamare funzione componendo il nome
----Messaggio originale----
Da: depaolim a gmail.com
Data: 10/09/2012 13.58
A: "tonino73 a libero.it"<tonino73 a libero.it>, "Discussioni generali sul linguaggio Python"<python a lists.python.it>
Ogg: Re: [Python] Richiamare funzione componendo il nome
Il giorno 10 settembre 2012 12:47, tonino73 a libero.it <tonino73 a 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.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20120910/2371588d/attachment.html>
Maggiori informazioni sulla lista
Python