def set_globals():
global stop_thread
global MyThread
stop_thread = False
def start_thread():
print(f'Начало отсчета: {datetime.datetime.utcnow()}')
print('stop_thread =', stop_thread)
while not stop_thread:
print('Работает поток... stop_thread =', stop_thread)
print(f'Прошло 3 секунды, {datetime.datetime.utcnow()}')
time.sleep(3)
def main():
set_globals()
MyThread = threading.Thread(target = start_thread)
MyThread.start()
# стартуем бота
bot.polling(non_stop = True)
if __name__ == '__main__':
main()
Да, я в курсе, что локальные и глобальные переменные отличаются областью видимости.
Так тоже пробовал (stop_thread должна меняться в хэндлере, но поток ее не воспринимает, остается False):
Складывается ощущение, что бот работает в своем потоке и не может передать значение переменной потоку, который я создаю. Поэтому и обращаюсь к тем, кто умеет.