On Sun, 2008-06-29 at 15:54 +0200, Leonardo wrote: > Quindi mi sarebbe d'aiuto un buon metodo per importare moduli a seconda > di una variabile, o altri modo per definire ed utilizzare funzioni in > files esterni al "cuore" del programma. > Grazie per le eventuali risposte :)
credo che quello che tu stai cercando e' proprio la funzione __import__ che ti permette di importare un modulo dal suo nome. Io personalmente risolvo questo tipo di problema usando una directory come modulo dei plugin, quindi all'avvio dell'applicazione cerco i file all'interno di quella directory e da questi vi importo le classi (senza istanziarle e creo un indice degli oggetti, per associare a questi delle regole di attivazione (come nel tuo caso) uso un metodo di classe che mi ritorna la chiave di selezione per quello specifico oggetto. eccoti un breve esempio: tmp = [ i for i in os.listdir("Actions") if i.endswith(".py")] self.handlers = {} for i in tmp: cname = i[0:-3] module = __import__("Actions."+cname, globals(),locals(),["*"]) mtclass = getattr(module,cname) self.handlers[mtclass.getRule()]= mtclass PS. il codice non e' testato prendilo giusto come esempio :) getRule e' un metodo di classe che dovresti implementare in ogni oggetto _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python