[Python] Come ottenere la lista delle classi contenute in un modulo
Daniele Zambelli
daniele.zambelli a gmail.com
Lun 27 Feb 2012 15:47:22 CET
Salve.
Sto scrivendo un eserciziario. Il programma principale cerca gli
esercizi da proporre in una directory dove si trovano diversi file
.py.
Ogni file contiene alcune classi e ogni classe corrisponde ad un tipo
di esercizi.
Esempio:
La cartella esercizi contiene i file:
eq2.py
eq2+.py
...
Ognuno di questi file contiene una docstring formata da tante righe
che contengono, per ogni esercizio:
- una descrizione,
- il nome della classe
Esempio:
"""
Eq. binomie; EqBinrrcz
Eq. binomie rad. razionali coeff. interi; EqBinrqcz
Eq. biquadratiche: rad. intere, coeff. interi; EqBiquadrzcz
Eq. trinomia: rad. intere, coeff. interi; EqTriquadrzcz
Eq. 3 gr. scomponibile: rad. intere, coeff. interi; Eq3rqcz
"""
Il programma principale si crea la lista di tutti i file *.py presenti
nella cartella esercizi, poi li importa e lavorando sulla docstring
ricava le descrizioni degli esercizi e il nome delle classi che li
implementano:
def loadese(self):
nomifile=[nf[:-3] for nf in os.listdir(os.curdir+DIRESE) if
nf[-3:]=='.py']
sys.path.append(sys.path[0]+DIRESE)
self.modules=[__import__(nf) for nf in nomifile]
self.scelte=[]
for mod in self.modules:
es=[e.split(';') for e in mod.__doc__.strip('\n').split('\n')]
for e in es:
self.scelte.append((e[0].strip(), mod, e[1].strip()))
È possibile mettere la descrizione dell'esercizio nella docstring di
ogni classe e ricavare direttamente le classi presenti in ogni modulo
senza scrivere esplicitamente l'elenco a inizio file?
Cioè vorrei ottenere la lista dell classi contenute in un modulo.
Scusate per la lunghezza e grazie dell'attenzione.
--
Daniele
www.fugamatematica.blogspot.com
giusto!
nel verso
forse è perché non guardiamo le cose
Quando non ci capiamo,
Maggiori informazioni sulla lista
Python