[Python] Lista delle funzioni presenti in un modulo

Marco Buttu mbuttu a oa-cagliari.inaf.it
Gio 28 Mar 2013 15:22:43 CET


On 03/28/2013 01:52 PM, Daniele Zambelli wrote:
> 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.
>
> for n_f in nfiles:
>
> mod = __import__(n_f)
>
> print(mod)
>
> exenames = [e for e in dir(mod) if e.startswith('exe_')]
>
> print(exenames)
>

Potresti usare il modulo inspect. Ad esempio:

     import inspect
     for n_f in nfiles:
         mod = __import__(n_f)
         attributes = [getattr(mod, name) for name in dir(mod)]
         functions = [obj for obj in attributes if inspect.isfunction(obj)]
         for f in functions:
             print(f())

-- 
Marco Buttu

INAF Osservatorio Astronomico di Cagliari
Loc. Poggio dei Pini, Strada 54 - 09012 Capoterra (CA) - Italy
Phone: +39 070 71180255
Email: mbuttu a oa-cagliari.inaf.it



Maggiori informazioni sulla lista Python