Dynamically loading python classes

Brian Bull bbull at pathfire.com
Fri Apr 11 12:13:18 EDT 2003


I am writing an application that has to dynamically load classes from
other modules based on certain criteria.  I load the class initially
like this:

 self.dict["handleUnknown"] =
new.classobj("handleUnknown",(handleUnknown.handleUnknown,),{})

I later initialize this class by calling

runningClass = self.dict[clas](self.pluginLog)

where clas is the name of the class I want to load such as
"handleUnknown" in this example

I then execute methods against the class object and delete it when I
am finished.

What I am looking for is a way to load the class "fresh" each time I
instantiate it.  For instance, if I make a change to the loaded class,
I want that change to be activated the next time the class is loaded
without having to restart the main program that loads the classes.

I also need to be able to load the module and class from strings
instead of actually using the module/class name.  ie.

runningClass = handleUnknown.handleUnknown()

This is what I want to be able to do (something similar to this)
className = "handleUnknown"
runningClass = className.className()

Any help would be appreciated.  If you need a better explanation,
please email me (bbull at pathfire.com).  I can also send my code if
needed.




More information about the Python-list mailing list