擅长:python、mysql、java
<p>假设您有一个包含类的列表,那么无需使用<code>eval</code>,就可以非常整洁地完成这项工作</p>
<pre><code>class Foo(object):
pass
class Thing(object):
pass
# List of interesting classes
classes = [Foo, Thing]
# Construct a dictionary where the key is the Classes __name__ attribute
classByNames = {cls.__name__:cls for cls in classes}
# Example usage
cName = 'Foo'
if cName in classByNames:
inst = classByNames[cName]()
print(inst) # <__main__.Foo object at ...>
else:
print("Unknown class %s" % cName)
</code></pre>
<p>(仅在pythonv2.7中测试了上述内容,但在v3中也应该可以正常工作)</p>