【问题标题】:Correct way to create a shell like environment in python?在 python 中创建类似 shell 的环境的正确方法?
【发布时间】:2010-05-03 00:52:30
【问题描述】:

我正在尝试创建一个类似于 shell 的环境,在该环境中,用户会看到“>>>”,并且可以输入许多预定义命令中的任何一个。但是,我能想到的唯一方法是使用字典映射命令->代码和 python 的“exec”。

有更正确的方法吗?

【问题讨论】:

    标签: python shell exec


    【解决方案1】:

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

    如果您最终推出了自己的解决方案,则无需涉及 exec。您的字典映射命令到代码应该将字符串映射到字符串。它可以将字符串映射到实际函数。实际上,类是字符串到代码(方法名到方法定义)的映射。

    【讨论】:

    • 我不确定我是否理解你...如果不是 exec,代码如何执行?
    • cmd2 可用作提供附加功能的直接替代品pypi.python.org/pypi/cmd2
    • @Wilduck:在 Python 中,函数是第一类对象,可以存储在字典中、分配给变量和调用。 def foo(): 通过; d = {'xyz': foo}; d['xyz']()
    • 我仔细考虑了这一点,最终自己发现了那一点代码。我可能最终会使用 cmd,但我很高兴我也学会了这一点。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2020-03-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-06
      • 1970-01-01
      相关资源
      最近更新 更多