Also called reflection, here is one method to import modules and instantiate objects using strings:
moduleName = 'myApp.models'
className = 'Blog'
#import the module by saying 'from myApp.models import Blog'
module = __import__(moduleName, {}, {}, className)
#now you can instantiate the class
obj = getattr(module, className )()
#set a property of the object using a string
setattr('Title','my first entry')
#call an existing method you already know
obj.save()
I was using Python 2.5, so it is probably safe to say the code above is at least Python 2.5+ compatible.
Some additional references:
Dive Into Python – The Power of Introspection
Python Manual – Built In Functions


Tue, Oct 13, 2009
Tech Tips