Глобальная переменная Python 3.2 не обновляется, когда она находится в потоке

Делаю программу и столкнулся с проблемой. У меня запущен поток, в котором есть цикл while, который проверяет, равна ли глобальная переменная False, если она равна True, то выходит из цикла while. Проблема в том, что даже если я обновлю глобальную переменную до True, она все равно не остановится, а просто продолжится.

Код:

Пока цикл:

while stopIt==False:
    print(stopIt) # Always prints out False, even when exit() is called
    # do things...

Стопор:

def exit():
    stopIt = True

Определение переменной stopIt:

global stopIt
stopIt = False

person user2418798    schedule 24.05.2013    source источник


Ответы (1)


Объявление global должно находиться внутри функции, в которой вы изменяете глобальную переменную:

def exit():
    global stopIt
    stopIt = True
person Janne Karila    schedule 24.05.2013