How can I create classes dynamically in a class? As I tried below, I get a NameError: name 'Foo is not defined. I am quite new to Python, pls forgive me if it's obvious.
class Parent(object):
    name2class = {'foo' : Foo, 'bar' : Bar }
    def do(self,string):
        return name2class[string]()
class Foo(Parent):
    pass
class Bar(Parent):
    pass
if __name__ == '__main__':
    parent = Parent()
    instance = parent.do()
 
     
     
     
     
    