python中的动态键绑定

2024-09-28 21:18:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在用pygame用python编写一个绘图程序。界面应该是vimesque的,允许用户通过按键和输入命令来控制大多数事情。我想允许按钮的实时绑定;用户应该能够更改哪个键代码对应哪个函数。在我当前的结构中,所有的绑定都存储在keycodes的函数字典中,“bindingsDict”。每当主循环接收到KEY_DOWN事件时,我执行: bindingDictkeyCode 其中keyCode存储为整数。 这是可行的,但似乎要花很多时间,而且我很难想出可以优化的方法。
有人知道dict查询的运行时间吗?我假设是因为它散列了它将在ln(n)中运行,但是这个解决方案与仅仅在mainloop中编写if语句列表(这不允许动态绑定)之间的性能有很大的不同。在


Tags: 函数代码用户命令程序绘图界面时间
1条回答
网友
1楼 · 发布于 2024-09-28 21:18:01

字典搜索对用户事件的响应不太可能对程序造成任何明显的延迟。你的代码有问题。在

顺便说一句,Python中的dict和set search是O(log(1))——但是对于105个键,或者甚至,如果计算应用的修饰符,那么可以线性地搜索大约1000个不同的keybindng(也就是说,如果搜索是O(N)),即使在5年前的(桌面)CPU上也是如此。在

所以,如果你想解决你的问题,只需发布一些代码。(在阅读评论时,我注意到你已经发现了一些其他的原因)

相关问题 更多 >