timer
в вашей функции check()
не является той же переменной, что и переменная timer
верхнего уровня. Значение check()
является локальным.
Попробуйте изменить check()
следующим образом:
def check ():
global timer
...the rest is unchanged...
Ключевое слово global
позволяет функции check()
видеть верхний уровень. timer
.
Тогда, поскольку check()
больше не ожидает аргумента, вы можете запустить его более просто:
threading.Thread(target= check, name= "TimerThread").start()