У меня есть функция в суб-модуля, который должен манипулировать переменные из родительского/интерпретатора Globals (утверждение, проверки), как это:Как получить доступ к Globals() родительского модуля в подмодуль?
import mymodule
mymodule.fun_using_main_interpreter_globals1()
Если я сделаю это, он работает:
mymodule.fun_using_main_interpreter_globals1(explicit_pass= globals())
Но, если я не перейду эксплицитно globals(), как я могу получить доступ к интерпретатору/parent globals() в мой подмодуль?
В IPython его можно поместить в настройки профиля.
Это может быть ясно для вас уже, но для кого-либо еще, читающего этот вопрос: изменение глобальных символов в другом модуле, как правило, является плохим. Если вы считаете, что хотите сделать это, сделайте шаг назад и подумайте о том, как решить вашу проблему, которая не связана с этим. Трудно следить за тем, что делает код, если модули могут свободно переключаться и менять друг друга. –
Сообщение только упоминает о доступе к Globals() от родительского звонящего, не имеет ничего общего с изменением глобальных переменных() ..... Попробуйте сделать шаг назад, попытайтесь придумать случаи/проблемы при доступе к Globals() (нет другого пути). –