Introspect current module to get classes
Gerald Klix
Gerald.Klix at klix.ch
Fri May 30 08:30:41 EDT 2003
Just a small improvment:
Sean Ross wrote:
> This code seems to be doing what you're asking for, although, in this case,
> I'm just accumulating a list of the names of the classes in this module, as
> opposed to a list of the actual classes themselves. For the latter behaviour
> just replace
> classes = [key for key, value ...
> with
> classes = [value for key, value ...
>
>
>
>
> import inspect
>
> # import a class from some other module to see
> # whether our filter handle it properly, i.e. ignore it
> from test import MyClass
>
> class A:
> pass
>
> class B:
> pass
>
>
> classes = [key for key,value in globals().items()
> if inspect.isclass(value) and
Replace this:
> value.__module__=='__main__']
with:
value.__module__ == __name__
> print classes
>
> """
> OUTPUTS:
> ['A', 'B']
>
> imported class, 'MyClass', is filtered out of 'classes' by:
> value.__module__=='__main__'
> """
>
>
>
>
>
> "Edmund" <no.spam at address.com> wrote in message
> news:8g3ddvcotfltqoj7d99nvooall46h6qko5 at 4ax.com...
>
>>I have a module that needs to do some initialization based on a list
>>of classes defined in itself.
>>
>>There has to be a way to determine what classes are defined in a
>>module (and not imported, etc.), within the module itself, but I can't
>>figure out how... Can anybody help?
>>
>>Thanks!
>>
>>...Edmund.
>
>
>
More information about the Python-list
mailing list