2010-05-03 48 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模塊。

相關問題