При доступе к u
из key()
, u
является локальной переменной. Вы должны добавить global u
в начало, чтобы получить доступ к глобальной переменной. Даже в этом случае переменные в одном исходном файле не могут быть изменены из другого исходного файла. Вы должны объединить два исходных файла (переместить key()
в другой исходный файл).
Кроме того, хотя я не знаком с msvcrt
, в документации сказано, что getchr
блокирует, пока не появится ключ для чтения. Так может просто избавиться от input()
и kbhit()
? Он может не подняться при побеге, поскольку это специальный ключ.
Пример: (Я не могу проверить, так как я не на MSV C)
import msvcrt
while u:
if msvcrt.getch() == chr(27).encode():
u = False