I've got a module written in Python. I now want to import it into another script and list all classes I defined in this module. So I try:
>>> import my_module
>>> dir(my_module)
['BooleanField', 'CharField', 'DateTimeField', 'DecimalField', 'MyClass', 'MySecondClass', 'ForeignKeyField', 'HStoreField', 'IntegerField', 'JSONField', 'TextField', '__builtins__', '__doc__', '__file__', '__name__', '__package__', 'datetime', 'db', 'division', 'os', 'struct', 'uuid']
The only two classes which I defined in my_module are MyClass
and MySecondClass
, the other stuff are all things that I imported into my_module
.
I now want to somehow be able to get a list of all classes which are defined in my_module
without getting all the other stuff. Is there a way to do this in Python?
Use the
inspect
module to inspect live objects:That should then work, getting every
class
defined within thatmy_module
.If you really want to use dir(), here it is:
or (script form)
But this uses the "eval" function, and is really not safe for use. I'd stick to the chosen answer
You can use Python Class Browser
it will list all classes defined in
your_module