[Python] Lista delle funzioni presenti in un modulo

Daniele Zambelli daniele.zambelli a gmail.com
Gio 28 Mar 2013 13:52:21 CET


Salve.

Vorrei in un mio programma ottenere la lista di tutte le funzioni presenti
nei file contenuti in una directory.

Ho un programma principale: main.py e una dir che contiene dei file:
mod0.py, ...
Il programma principale deve caricare tutte le funzioni presenti in questi
moduli, ma io vorrei anche avere una lista che le contiene.

Sono riuscito ad avere la lista con i loro nomi, ma mi serve la lista con
le funzioni.

Di seguito riporto il programma:

-----8<------------main.py

"""Dovrebbe produrre una lista con tutte le funzioni presenti

nei files della directory modules."""


import os

import sys


DIREXE = 'modules'


def loadexe():

"""Load all math esercises."""

modpath = os.path.join(os.curdir, DIREXE)

print(modpath)

nfiles = [n_f[:-3] for n_f in os.listdir(modpath) if n_f.endswith('.py')]

sys.path.append(modpath)

for n_f in nfiles:

mod = __import__(n_f)

print(mod)

exenames = [e for e in dir(mod) if e.startswith('exe_')]

print(exenames)


loadexe()
-----8<------------mod0.py

La dir "modules" contiene files simili al seguente:

-----8<------------mod0.py

"""Modulo 0"""


def exe_primo():

"""Primo esercizio."""

return "primo"


def exe_secondo():

"""Secondo esercizio."""

return "secondo"


def exe_terzo():

"""Terzo esercizio."""

return "terzo"

-----8<------------mod0.py

Grazie per l'attenzione e per qualunque dritta.

-- 

Daniele

www.fugamatematica.blogspot.com

    giusto!
    nel verso
    forse è perché non guardiamo le cose
    Quando non ci capiamo,
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20130328/6a301b24/attachment.html>


Maggiori informazioni sulla lista Python