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