#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