[Python] Funzioni come moduli

Leonardo learts92 a gmail.com
Dom 29 Giu 2008 15:54:33 CEST


Salve a tutti.
Sto scrivendo un Bot IRC in Python, e sono arrivato a un bot
completamente funzionante, così volevo migliorare la struttura, in modo
che fosse più facilmente estendibile.
Ora, come potete vedere nello script allegato, nella classe Rule ho
tante funzioni, una per ogni tipo di regola (e quindi di azione da
compiere). Ad esempio, c'è una funzione per una risposta random, una per
eseguire comandi shell, una per il bruteforce di hash md5 e così via.
Ora, se voglio aggiungere una nuova funzionalità, devo modificare il
sorgente aggiungendo la funzione desiderata, ed aggiungerla nel
dizionario "self.internal_rules". Per maggiore comodità ed estendibilità
pensavo di mettere tutte queste funzioni dentro una cartella come
moduli, ad esempio random.py, shell.py, bruteforce.py e cosi via, e il
bot all'avvio controlla tutti i moduli presenti e crea in base al nome
del file il dizionario internal_rules. il mio problema è che in base al
tipo di regola devo importare il modulo corrispondente, se ad esempio
deve compiere un processo shell deve usare il modulo shell.py, ma dato
che non posso fare import <variabile> poichè dopo import viene sempre
considerato come stringa (o no? =|) come posso fare? Cercando in giro ho
trovato il modulo imp e funzioni come imp.load_source ma non ho capito
bene.
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 :)
-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        IRCBot3.py
Tipo:        text/x-python
Dimensione:  11593 bytes
Descrizione: non disponibile
Url:         http://lists.python.it/pipermail/python/attachments/20080629/5a92875e/attachment.py 


Maggiori informazioni sulla lista Python