Variable class instantiation

Lie Ryan lie.1296 at gmail.com
Fri Dec 11 05:10:48 EST 2009


On 12/11/2009 8:26 PM, Jan Mach wrote:
> Hi everybody,
> I am currently solving the following problem and I am stuck. I am trying
> to create instance of the class of variable name. I know, that the
> following works:
>
> if (something):
>      classToUse = C1
> else:
>      classToUse = C2
>
> o = classToUse()
>
> ,but this is not what I want. I need to have the class name in the string and then
> instantiate it:
>
> (this does not work of course)
> classToUse = "C1"
> o = classToUse()
>
> It is because I don`t know at the moment what the name of the class will be, I will
> load it from the file or pass it as argument. Does anyone know what is the correct syntax
> to accomplish this?

Make a dict of name->class, otherwise it's a security issue. A malicious 
user may pass a class you never wish to instantiate (with eval, it's 
even worse, malicious user can execute arbitrary code).



More information about the Python-list mailing list