dynamic class instantiation

Kent Johnson kent at kentsjohnson.com
Mon Jan 30 18:18:36 EST 2006


Ognen Duzlevski wrote:
> I have a parser that will go through the language definition 
> file and produce the following as a separate .py file:
> 
> class page(object):
> 	def __init__():
> 		self.name = None
> 		self.caption = None
> 		self.functions = []
>> 
> Say I got "page" as a string. How do I go about 
> instantiating a class from this piece of information? To make it 
> more obvious how do I create the page() class based on the "page" 
> string I have? 

Use getattr().

If the definition of page is in my_objects.py, and that file is on the 
Python search path, you can use
import my_module
cls = getattr(my_module, 'path')
instance = cls()

to create an instance of my_module.path.

Kent



More information about the Python-list mailing list