我想将字典中的字符串转换为可调用的命令。
binds = {"<Control-n>" : 'Commands.New()'}
for n, b in binds.values():
root.bind_all(n, b)
所以我想在字典中绑定所有内容。
答案 0 :(得分:4)
不要将命令存储为字符串。没有一种干净的方法可以将它们转换回可以与bind_all
一起使用的函数。
相反,您应该使字典的值成为对函数对象本身的引用:
binds = {"<Control-n>" : Commands.New}
for n, b in binds.items():
root.bind_all(n, b)
此外,您应该调用dict.items
(或Python 2.x中的dict.iteritems
)而不是dict.values
。第一种方法将返回键/值对的元组,您可以在执行时解压缩这些元组。但是第二种方法只返回值。