如何将字符串转换为Python类对象?

给定一个字符串作为python函数的用户输入,如果当前定义的命名空间中有一个具有该名称的类,我想从中获取一个类对象。

示例

class Foobar:
    pass
print eval("Foobar")
print type(Foobar)

输出结果

 __main__.Foobar
<type 'classobj'>

将字符串转换为类对象的另一种方法如下

示例

import sys
class Foobar:
    pass
def str_to_class(str):
    return getattr(sys.modules[__name__], str)
print str_to_class("Foobar")
print type(Foobar)

输出结果

__main__.Foobar
<type 'classobj'>