Как импортировать дополнительный модуль для использования функции, которая требует обновленных глобальных переменных из первого исполняемого модуля - PullRequest
0 голосов
/ 20 ноября 2018

У меня есть модуль A, который импортирует модуль B. Модуль A имеет глобальные переменные, которые постоянно меняются.Функция, которую мне нужно запустить из модуля B, нуждается в обновленном значении этих переменных.Я пытаюсь что-то вроде этого:

Модуль A.py:

test_var = 0

def updateA():
    import B
    B.update()

if __name__ == "__main__":
    for _ in range(100):
        updateA()
        print(test_var)

Модуль B.py:

import A
def update():
    A.test_var += 1

, который должен печатать числа от 0 до 00.Это просто упрощенный пример того, что я пытаюсь достичь.

1 Ответ

0 голосов
/ 20 ноября 2018

Вместо прямой ссылки на переменные в модуле А. Передайте переменную в качестве параметра функции обновления.

Например, в модуле A.py:

test_var = 0

def updateA():
    global test_var // Ensure usage of global scope
    test_var = test_var + 1
    import B
    B.update(test_var)

if __name__ == "__main__":
    for _ in range(100):
        updateA()
    print(test_var)

А в модуле B.py

def update(var)
    print(var)
...