Convert string to Python class object?

python

Solution

Warning: `eval()` can be used to execute arbitrary Python code. You should never use `eval()` with untrusted strings. (See Security of Python's eval() on untrusted strings?)

This seems simplest.

>>> class Foo(object):
...     pass
... 
>>> eval("Foo")
<class '__main__.Foo'>

Problem

Given a string as user input to a Python function, I'd like to get a class object out of it if there's a class with that name in the currently defined namespace. Essentially, I want the implementation for a function which will produce this kind of result: ``` class Foo: pass str_to_class("Foo") ==> <class __main__.Foo at 0x69ba0> ``` Is this, at all, possible?

Original source

Related problems