On Wed, 14 Jan 2009 11:16:58 +0530, Krishnakant wrote: > hello all, > I have a strange situation where I have to load initiate an instance of > a class at run-time with the name given by the user from a dropdown > list.
Not strange at all. > Is this possible in python and how? Of course. Just use a dispatch table. Use a dict to map user strings to classes: >>> class Spam(object): pass ... >>> class Ham(object): pass ... >>> dispatch_table = {"Spam": Spam, "Ham": Ham} >>> dispatch_table["Ham"]() <__main__.Ham object at 0xb7ea2f8c> The keys don't even have to be the name of the class, they can be whatever input your users can give: >>> dispatch_table["Yummy meat-like product"] = Spam >>> dispatch_table["Yummy meat-like product"]() <__main__.Spam object at 0xb7ea2f6c> You can even automate it: >>> dispatch_table = {} >>> for name in dir(): ... obj = globals()[name] ... if type(obj) == type: ... dispatch_table[name] = obj ... >>> dispatch_table {'Ham': <class '__main__.Ham'>, 'Spam': <class '__main__.Spam'>} -- Steven -- http://mail.python.org/mailman/listinfo/python-list