如何在Python中获取类的模块实例?

时间:2009-10-05 22:03:22

标签: python

我正在学习Python,而且一如既往,我对我的初学者项目充满野心。我正在为App Engine的社区站点工具包开发插件系统。我的插件超类有一个名为install_path的方法。我想为__path__ __module__获取self(在这种情况下,它将是子类)。问题是,__module__返回str而不是模块实例本身。 eval()是不可靠和不受欢迎的,所以我需要一个很好的方法来接触eval str __module__ {{1}} {{1}}我从{{1}}回来的实际模块实例}。

3 个答案:

答案 0 :(得分:12)

sys.modules dict包含所有导入的模块,因此您可以使用:

mod = sys.modules[__module__]

答案 1 :(得分:1)

Importing modules

怎么样?
  

X = __import__(‘X’)的作用类似import X,区别在于你1)   将模块名称作为字符串传递,并且   2)明确地将其分配给变量   在您当前的命名空间中。

您可以传递模块名称(而不是“X”)并返回模块实例。 Python将确保您不会导入两次相同的模块,因此您应该返回先前导入的实例。

答案 2 :(得分:1)

或者,如果你想要的只是模块的路径,你可以使用模块的全局__file__ variable