如何将字符串转换为命令

时间:2014-12-18 17:15:41

标签: python tkinter

我想将字典中的字符串转换为可调用的命令。

binds = {"<Control-n>" : 'Commands.New()'}
for n, b in binds.values():
    root.bind_all(n, b)

所以我想在字典中绑定所有内容。

1 个答案:

答案 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。第一种方法将返回键/值对的元组,您可以在执行时解压缩这些元组。但是第二种方法只返回值。