【发布时间】:2014-06-17 05:00:00
【问题描述】:
我尝试编写一个方法来处理键盘输入并执行适当的功能(可选地带有一些参数)。因此,我正在使用带有一些键盘映射的 dict,例如
mappings = {
'q' : (quit , None),
KEY_HOME : (move_to_line , 1),
KEY_END : (move_to_line , widget.last_line)
}
处理函数本身看起来像:
def handle_input(user_input):
if user_input in mappings.keys():
func = mappings[user_input][0]
args = mappings[user_input][1]
if args == None:
func()
elif type(args) == list:
func(*args)
elif type(args) == dict:
func(**args)
else:
func(args)
现在,该函数适用于前两个 dict 条目。在第三个条目的情况下,如果widget.last_line 更改,它将不起作用。 python 编译器似乎将此条目作为常量值处理,即使它是小部件的属性。有没有办法让这样的条目保持“不稳定”,或者有更好的方法来执行这样的操作?
【问题讨论】:
标签: python dictionary python-curses