【发布时间】:2010-10-07 13:32:16
【问题描述】:
给定一个 Python 类的字符串,例如my_package.my_module.MyClass,最好的加载方式是什么?
换句话说,我正在寻找 Java 中的等效 Class.forName(),Python 中的函数。它需要在 Google App Engine 上运行。
最好这是一个接受类的 FQN 作为字符串并返回对类的引用的函数:
my_class = load_class('my_package.my_module.MyClass')
my_instance = my_class()
【问题讨论】:
-
我还需要能够将类引用分配给变量。
-
这似乎与以下内容重复:stackoverflow.com/questions/452969/…
-
你说得对,它是重复的,谢谢你找到它
-
@JohnTyree 动态加载类如何意味着程序不有趣?你能举个例子,让这种批评对 SO 成员更有用吗?
-
有趣“够了”。这只是一种半开玩笑的说法,有时因为您无法控制且难以预测的因素而需要做一些奇怪的事情。之前的评论基本上是说,“你为什么不直接导入正常的方式?”我是说他们有一天也会有一个奇怪的角落案例,需要做一些丑陋的事情。
标签: python reflection python-import