Как я могу получить ссылку на модуль из этого модуля? Кроме того, как я могу получить ссылку на пакет, содержащий этот модуль?
python
self-reference
Рам Рахум
источник
источник
Ответы:
источник
Еще один метод, который не импортирует модуль sys и, возможно, зависит от вашего вкуса - проще:
Имейте в виду, что нет импорта. Python импортирует каждый модуль только один раз.
источник
Если у вас есть класс в этом модуле, то
__module__
свойство класса - это имя модуля класса. Таким образом, вы можете получить доступ к модулю черезsys.modules[klass.__module__]
. Это также работает для функций.источник
__module__
свойство является не модулем, а строкой; таким образом, происходитinspect.getabsfile(func.__module__)
сбой с " TypeError: 'os' не является объектом модуля, класса, метода, функции, traceback, frame или code "; покаinspect.getabsfile(sys.modules[o.__module__])
что проходит.Вы можете получить название текущего модуля, используя
__name__
Ссылка на модуль находится в
sys.modules
словаре.Смотрите документацию по Python
источник
Вы можете передать его снаружи:
Не идеально, но это работает для моего текущего варианта использования.
источник