【发布时间】:2011-01-19 21:05:32
【问题描述】:
鉴于我有一个模块的代码对象,如何获取对应的模块对象?
看起来moduleNames = {}; exec code in moduleNames 做了一些非常接近我想要的事情。它将模块中声明的全局变量返回到字典中。但是如果我想要实际的模块对象,我该如何获取呢?
编辑: 看起来您可以滚动自己的模块对象。模块类型没有方便地记录,但您可以执行以下操作:
import sys
module = sys.__class__
del sys
foo = module('foo', 'Doc string')
foo.__file__ = 'foo.pyc'
exec code in foo.__dict__
【问题讨论】:
-
模块类型的首选访问点是
types.ModuleType。