我正在学习Python,而且一如既往,我对我的初学者项目充满野心。我正在为App Engine的社区站点工具包开发插件系统。我的插件超类有一个名为install_path
的方法。我想为__path__
__module__
获取self
(在这种情况下,它将是子类)。问题是,__module__
返回str
而不是模块实例本身。 eval()
是不可靠和不受欢迎的,所以我需要一个很好的方法来接触eval
str
__module__
{{1}} {{1}}我从{{1}}回来的实际模块实例}。
答案 0 :(得分:12)
sys.modules
dict包含所有导入的模块,因此您可以使用:
mod = sys.modules[__module__]
答案 1 :(得分:1)
X = __import__(‘X’)
的作用类似import X
,区别在于你1) 将模块名称作为字符串传递,并且 2)明确地将其分配给变量 在您当前的命名空间中。
您可以传递模块名称(而不是“X”)并返回模块实例。 Python将确保您不会导入两次相同的模块,因此您应该返回先前导入的实例。
答案 2 :(得分:1)
或者,如果你想要的只是模块的路径,你可以使用模块的全局__file__
variable。