如何将活动模块作为对象

时间:2017-06-25 15:27:37

标签: python module

导入另一个python文件时,会为具有相同名称的变量分配一个module-object:

>>> import somemodule
>>> somemodule
<module 'somemodule' from '/home/code/test/somemodule.py'>

但是如何将活动模块作为somemodule.py本身的对象获取,该对象应该与somemodule中的变量<stdin>相同?

1 个答案:

答案 0 :(得分:1)

您可以从__name__获取当前模块的名称。该名称看起来像package.module(假设您的文件位于package / module.py中)。

使用该字符串访问sys.modules内的模块,但要注意:您不希望在模块加载过程中执行此操作!在运行模块的最外层代码时,模块定义仍然处于不稳定状态 - 您不一定总是能够访问所有内容。

对于特定示例,模块语句从上到下执行。因此,如果您访问中间的模块,访问上方定义的任何变量和函数都将在模块中,但访问下面定义的内容将不会被执行,因此不会在模块中。糟糕!