2010-05-03 34 views
2

我正在尝试创建一个类似环境的shell,其中用户提供了“>>>”,并且可以键入任意数量的预定义命令。但是,我可以考虑实现这一点的唯一方法是使用字典映射命令 - >代码和python的“exec”。在python中创建一个类似环境的shell的正确方法?

有没有更正确的方法来做到这一点?

回答

6

标准库模块cmd专门用于此目的。

如果你最终确定了自己的解决方案,则不需要涉及exec。你的字典映射命令到代码应该将字符串映射到字符串。它可以将字符串映射到实际功能。事实上,一个类是字符串到代码的映射(方法名称到方法定义)。

+0

我不确定我是否理解你......如果不是通过exec执行,代码如何执行? – Wilduck 2010-05-03 01:06:51

+0

'cmd2'可用作提供附加功能的插入替换方法http://pypi.python.org/pypi/cmd2 – jfs 2010-05-03 01:20:15

+2

@Wilduck:在Python中,函数是第一个类对象,可以存储在字典中,分配给变量,并被调用。 def foo():pass; d = {'xyz':foo}; d ['xyz']() – 2010-05-03 02:13:11

0

如果是您正在制作的Python交互式解释器,请查看code模块。

相关问题