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

如何将字符串变量作为Pygame类属性实现按键判断?

问题:如何通过字符串变量调用Pygame的按键常量?

原本可以正常运行的Pygame按键判断代码:

if event.key == pygame.K_LEFT: print('LEFT key pressed')

我现在想通过用户输入的字符串变量来设置游戏的左键,于是定义了这样的变量:

left_key = 'K_LEFT'

请问怎么把这个变量作为Pygame的属性来使用呢?我想实现类似下面的效果(当然下面的写法是无法运行的):

if event.key == pygame.left_key: print('LEFT key pressed')

这其实很简单,用Python内置的getattr()函数就能解决!它可以帮你根据字符串名称,动态获取模块(这里就是pygame)里对应的属性值。

具体的正确写法如下:

left_key = 'K_LEFT'
# 从pygame模块中获取名为left_key对应字符串的属性
if event.key == getattr(pygame, left_key):
    print('LEFT key pressed')

如果担心用户输入的字符串可能是无效的按键名称(比如拼写错误导致找不到对应属性),还可以给getattr()加个默认值,避免程序报错:

left_key = 'K_LEFT'
# 找不到对应属性时返回None,后续可以做判断
target_key = getattr(pygame, left_key, None)
if target_key is not None and event.key == target_key:
    print('LEFT key pressed')

这样就能完美实现用字符串变量动态指定Pygame按键常量的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 06:58:51