Я пытаюсь вызвать globals()
внутри функции, импортированной из другого файла, для извлечения глобально определенных значений программы.
Однако этот словарь отличается от словаря при вызове внефункция.
Я знаю, что это должно произойти, поскольку здесь говорит:
Словарь таблицы глобальных переменных - это словарь текущего модуля (внутрифункция, это модуль, в котором она определена, а не модуль, в котором она вызывается)в __main__
?
Эта проблема может быть легко воссоздана.Например, в foo.py
введите:
def get_globals():
return globals()
Затем в основной программе:
from foo import get_globals()
main_globals = globals()
foo_globals = get_globals()
main_globals == foo_globals
Out [1]: False
Однако есть ли способ заставить эту последнюю строку прочитать:
main_globals == foo_globals
Out [2]: True
Заранее спасибо за помощь:)