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

如何获取Key枚举值并区分Key/Button等不同类型参数

实现方案:处理多类型参数并区分Key/Button枚举

1. 获取Key枚举的对应值

直接通过枚举实例的value属性就能拿到对应值,比如Key.esc.value会返回ESC键的对应值(通常是'\x1b')。在函数里处理时,只要参数是Key枚举实例,直接访问key.value即可。

2. 支持多类型参数的函数实现

下面是完整的函数实现,能处理Key、Button枚举,以及str、int类型参数,会先判断类型再执行对应逻辑:

from pynput.keyboard import Key
from pynput.mouse import Button
from enum import Enum

def corresponding_event(key):
    # 先判断是否为Enum类型
    if isinstance(key, Enum):
        # 区分是Key还是Button枚举
        if isinstance(key, Key):
            print(f"这是键盘按键枚举:名称={key.name},值={key.value}")
            # 这里可以添加键盘按键的专属操作
        elif isinstance(key, Button):
            print(f"这是鼠标按键枚举:名称={key.name},值={key.value}")
            # 这里可以添加鼠标按键的专属操作
    # 处理字符串类型
    elif isinstance(key, str):
        print(f"这是字符串参数:内容={key}")
        # 字符串类型的处理逻辑
    # 处理整数类型
    elif isinstance(key, int):
        print(f"这是整数参数:数值={key}")
        # 整数类型的处理逻辑
    else:
        print(f"不支持的参数类型:{type(key)}")

# 测试各种类型参数
corresponding_event(Key.esc)    # 键盘枚举
corresponding_event(Button.left) # 鼠标枚举
corresponding_event("hello")     # 字符串
corresponding_event(123)         # 整数

代码说明

  • 先通过isinstance(key, Enum)判断是否为枚举类型,再用isinstance(key, Key)和isinstance(key, Button)区分具体枚举类型,执行不同操作。
  • 对str、int类型分别做判断,各自处理对应的逻辑。
  • 最后加了默认分支处理不支持的类型,避免报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 22:22:05