[Python] Come ottenere la lista delle classi contenute in un modulo

enrico franchi enrico.franchi a gmail.com
Lun 27 Feb 2012 18:49:06 CET


2012/2/27 Marco Beri <marcoberi a gmail.com>:
> 2012/2/27 Daniele Zambelli <daniele.zambelli a gmail.com>
>>
>> Cioè vorrei ottenere la lista dell classi contenute in un modulo.
>> Scusate per la lunghezza e grazie dell'attenzione.
>
>
> Con un file c.py fatto così:
>
> class X:
>     pass
>
> class Y:
>     pass
>
> Z = {}
>
> W = 3
>
>
> Con questo codice:
>
> import c
> from types import ClassType
> for name in dir(c):
>    if type(getattr(c, name)) == ClassType:
>        print name
>
>
> Ottieni questo output:
>
> X
> Y
>
>
> Va bene?

In [22]: cat c.py
import abc

class A(object):
    pass

class B:
    pass

class C(object):
    __metaclass__ = abc.ABCMeta

class Meta(type):
    pass

class D(object):
    __metaclass__ = Meta



In [23]: cat prova.py
import c
from types import ClassType
for name in dir(c):
    if type(getattr(c, name)) == ClassType:
        print name

In [24]: %run prova.py
B

-- 
.
..: -enrico-


Maggiori informazioni sulla lista Python