在python中的反思

JPC*_*JPC 2 python django reflection

我试图在python中找到关于反射的一些信息.我发现了一篇维基百科文章,它将此作为代码片段:

# without reflection
Foo().hello()

# with reflection
getattr(globals()['Foo'](), 'hello')()
Run Code Online (Sandbox Code Playgroud)

我无法让这个工作.我真正需要的是一种实例化对象的方法.所以,如果我有一个字符串'Foo',我希望能够得到一个Foo类型的对象.就像在java中我可以这样说:Class.forName("Foo")

刚刚发现这个......想知道为什么我以前找不到这个: python是否具有Java Class.forName()的等价物?

Kar*_*tel 8

我真正需要的是一种实例化对象的方法.

这就是这个globals()['Foo']()部分的作用.

它适用于我:

>>> class Foo:
...   def __init__(self): print "Created a Foo!"
...
>>> globals()['Foo']()
Created a Foo!
<__main__.Foo instance at 0x02A33350>
>>>
Run Code Online (Sandbox Code Playgroud)