You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用快捷键修改Python变量值:Esc热键无法终止while循环如何解决

问题根因
  • 自定义函数命名为exit会覆盖Python内置的同名方法,属于不规范命名
  • 热键注册逻辑放在while循环内,会每次循环重复注册热键,产生冗余性能损耗
  • 每次循环主动调用自定义exit()函数,该函数固定返回False,因此第一次循环就会直接触发终止逻辑,和按键操作完全无关
  • 原代码中绑定的lambda回调仅调用exit()获取返回值,没有对running变量做任何修改,就算热键触发也无法终止循环
可正常运行的实现方案

假设你使用的是Python的keyboard库实现热键监听,实现代码如下:

import keyboard

# 循环状态标识
running = True

# Esc键触发回调
def on_esc_pressed():
    global running
    running = False

# 进入循环前仅注册一次热键
keyboard.add_hotkey("esc", on_esc_pressed)

while running:
    # 此处编写你循环内的业务逻辑
    # --- 业务逻辑开始 ---
    
    # --- 业务逻辑结束 ---
    # 加入短休眠降低空转CPU占用,可根据实际业务调整时长
    keyboard.wait(0.01)

# 循环结束后解绑所有热键,避免进程残留监听
keyboard.unhook_all()
依赖安装

运行代码前需要先安装对应的依赖库:
pip install keyboard

内容的提问来源于stack exchange,提问作者AmirhosseinHG

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 15:42:02