Python – Instantiate a Python class from a name

python

So i have a set of classes and a string with one of the class names. How do I instantiate a class based on that string?

class foo:
  def __init__(self, left, right):
     self.left = left
     self.right = right

str = "foo"
x = Init(str, A, B)

I want x to be an instantiation of class foo.

Best Answer

In your case you can use something like

get_class = lambda x: globals()[x]
c = get_class("foo")

And it's even easier no get class from the module

import somemodule
getattr(somemodule, "SomeClass")