Python: как получить ссылку на модуль внутри самого модуля?

Как я могу получить ссылку на модуль в данном модуле? Также, как я могу получить ссылку на пакет, содержащий этот модуль?

5 ответов


import sys
current_module = sys.modules[__name__]

Если у вас есть класс в этом модуле, то __module__ свойства класса-это имя модуля класса. Таким образом, вы можете получить доступ к модулю через sys.modules[klass.__module__]. Это также работает для функций.


Вы можете получить имя текущего модуля, используя __name__

ссылка на модуль можно найти в sys.modules словарь.

см. Python документация


еще один метод, который не импортирует модуль sys и, возможно, зависит от вашего вкуса-проще:

current_module = __import__(__name__)

имейте в виду, что импорта нет. Python импортирует каждый модуль только один раз.


вы можете передать его снаружи:

mymod.init(mymod)

не идеально, но это работает для моего использования.