Изменение значения переменной с помощью горячей клавиши

#python #hotkeys

Вопрос:

Здесь у меня есть часть моего кода, которая определяет, "Esc" нажата она или нет. Затем измените значение running на False и завершите цикл while

 def exit():
    xx = False
    return xx
        
while running:
    add_hotkey("esc",lambda:exit())
    if exit() == False:
        running = False
 

Но это не работает. В if инструкции exit() начинается изменение значения выполнения и завершается цикл while без нажатия какого-либо боттона. Какой-нибудь альтернативный код?

Комментарии:

1. Вызов exit() ничего не меняет в значении. Он просто возвращает значение False. Вы намеревались установить running значение False внутри exit ? Обратите внимание, что вам нужно global running будет это сделать.

Ответ №1:

Если вы просто хотите выйти из своей программы при нажатии кнопки escape, укажите sys.exit в качестве обратного вызова, который будет вызван при esc нажатии.

 import sys

while running:
    add_hotkey("esc", sys.exit)
 

Или, если вам нужно выполнить какой-то код очистки, поместите все это в метод:

 def exit():
  print("Exiting...")
  sys.exit()

while running:
    add_hotkey("esc", exit)
 

Ответ №2:

Причина, по которой код не работает running , должна была быть заранее неясной. прежде while чем вы должны установить runnning = true