У меня есть модуль с основной функцией, которая запускает цикл, пока флаг имеет значение true. В цикле есть вызов функции, определенной в другом модуле, который проверяет условия и должен остановить основной цикл, если он True.Изменение глобальной переменной в модуле из функции, определенной в другом модуле
Код:
main.py
import other
isRunning = True
def shutdown():
global isRunning
isRunning = False
def main():
while isRunning:
# some logic here
other.check()
if __name__ == '__main__':
main()
other.py
import main
def check():
someCondition = #some logic to check the condition
if someCondition:
main.shutdown()
код выполняется запуск файла main.py
.
Проблема заключается в том, что при вызове other.check()
в цикле вызывается функция main.shutdown()
, но основной цикл продолжает работать. В основном цикле переменная isRunning
всегда True
, но я ожидал, что она станет False
после установки в функции main.shutdown()
. Почему это происходит? Что мне не хватает?
Я мог бы реорганизовать код для более эффективного управления выходом из цикла, но мне интересно узнать, существует ли решение, поддерживающее такую структуру кода.
Возможно, вам понадобится инструкция 'global isRunning' в main(). – barny