Я не уверен, является ли это элементом того, как вы задаете свой вопрос, но похоже, что у вас здесь несколько проблем.Первая - это проблема со ссылкой на импорт (или, возможно, с использованием импорта, где класс будет более эффективным).
Смотрите, если вы запустите код только так, как вы описали и предоставили, вы никогда не получите правильный ответчто вы ищете, потому что функция Init в a.py никогда не будет вызвана.
Вы должны иметь определенную глобальную переменную, определенную каким-либо образом в глобальной области видимости, прежде чем использовать ее, как в своем коде.
Глобальный оператор просто говорит интерпретатору связать значенияпредоставленная переменная во всех штатах.Он не определяет переменную в самой внешней области видимости самостоятельно.
Следовательно, что-то вроде этого ( РЕДАКТИРОВАТЬ: ИСПРАВЛЕНО ):
a.py:
g_handle = False
def Init():
import mods
global g_handle
g_handle = mods.handle_class()
b.py:
import a
a.Init()
a.g_handle
... должно работать, чтобы вернуть то, что вы ищете.
Если бы вы могли использовать класс вместо импорта из другого модуля, вы могли бы также избавить себя от неприятностей:
import mods
class a():
g_handle = False
global g_handle
def __init__(self, handle_class):
g_handle = handle_class()
if __name__ == "__main__":
a(mods.handle_class).g_handle