Python:我如何获得模块内部模块的引用?

我如何从模块中获取对模块的引用? 另外,如何获得包含该模块的包的引用?

import sys current_module = sys.modules[__name__] 

如果您在该模块中有一个类,那么__module__属性就是该类的模块名称。 因此你可以通过sys.modules[klass.__module__]来访问模块。 这也适用于function。

您可以使用__name__获取当前模块的名称

模块引用可以在sys.modules字典中find。

请参阅Python 文档

还有一种技术,不导入sys模块,可以说 – 取决于你的口味 – 更简单:

 current_module = __import__(__name__) 

请注意,没有import。 Python只导入一次模块。

你可以从外面传入

 mymod.init(mymod) 

不理想,但它适用于我目前的使用情况。

Interesting Posts