gpt4 book ai didi

Python:使用字典作为开关不起作用

转载 作者:太空狗 更新时间:2023-10-29 22:05:12 25 4
gpt4 key购买 nike

我是一个“python 新手”,正在尝试掌握字典数据类型的内部工作原理。昨晚我试图将一个用作 openGL 程序上键盘输入的控制结构(即 switch 语句)。

问题 是出于某种原因,字典一直在评估所有案例(在本例中为两个案例),而不仅仅是来自按下的键的案例。

下面是一段代码示例:

def keyboard(key):
values = {
110: discoMode(),
27: exit()
}
values.get(key, default)()

我昨晚花了一个多小时试图找到为什么要评估每个“案例”的答案,我有一些想法,但无法清楚地找到“为什么”问题的答案。

那么,有人会好心地向我解释为什么当我按下“n”键(ascii 表示为 110)时,这段代码也会评估 27(ESC 键)下的条目吗?

如果这个话题被打死,我深表歉意,但我看了看,却无法轻易找到明确的答案(也许我错过了)。

谢谢。

最佳答案

您不应该调用这些函数。只需将函数对象本身存储在字典中,而不是它们的返回值:

def keyboard(key):
values = {
110: discoMode,
27: exit
}
values.get(key, default)()

f() 是对函数 f 的调用,计算结果为该调用的返回值。 f 是函数对象本身。

关于Python:使用字典作为开关不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4960332/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com