reflection as in Java: how to create an instance from a classname
Bruno Desthuilliers
bruno.42.desthuilliers at websiteburo.invalid
Mon Jan 5 11:34:24 EST 2009
guss a écrit :
> I cannot find a satisfying answer to this question on the web so let's
> try here.
>
> My problem is the following, I would like to instantiate some object
> from a configuration file that would contain class names like for
> example classname=org.common.resource.MyResource.
> Here my resource is the class to instanciate and it is in the module
> resource that is in a package hierachy.
>
> In fact I would like to do something very similar to the Java:
>
> klass = Class.forname("org.common.resource.MyResource")
>
> instance = klass.newInstance()
>
> The second line is easy once I have a classobj but I have some
> problems to find the right recipe for getting it.
>
> I know how to create a class from scratch with new.classobj but how do
> you get a class object and then create an object ?
>
> I would like a recipe working for all cases (whatever the module is
> not the local one ...)
use __import__ to get the module object, then getattr(module, classname)
to get the class object (sorry, no much time right now to give you a
full recipe, but that should be enough to get you started).
HTH
More information about the Python-list
mailing list