Подтвердить что ты не робот

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

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

4b9b3361

Ответ 1

import sys
current_module = sys.modules[__name__]

Ответ 2

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

Ответ 3

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

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

См. документацию Python

Ответ 4

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

current_module = __import__(__name__)

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

Ответ 5

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

mymod.init(mymod)

Не идеально, но он работает для моего текущего случая использования.