如何获取Key枚举值并区分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
相关产品推荐
相关产品推荐

