我被要求用Python模擬CLI。使用python模擬CLI Shell
這是我做過什麼
def somefunction(a,b):
//codes here
//consider some other functions too
print "--- StackOverFlow Shell ---"
while True:
user_input = raw_input("#> ")
splitit = user_input.split(" ")
if splitit[0] == "add":
firstNum = splitit[1]
sNum = splitit[2]
result = somefunction(firstNum, sNum)
print result
//consider some other elif blocks with "sub", "div", etc
else:
print "Invalid Command"
我還檢查列表的長度,這裏的「splitit」我將只允許3變元的,首先將是操作,以及第二和第三個參數有一些功能要執行,如果參數超過3,因爲我確實要進行檢查。
雖然不知何故我設法使它工作,但有沒有更好的方法來實現相同?
如果是更比一些10的命令,你會很快得到每個命令陷入困境,如果你分析和邏輯調配自己的語法shell會變得難以維護,」 」。將它分解爲標記器,解析器(帶有一些命令數據庫)和解釋器(執行單元),這是一個管道,原始輸入在執行前通過這些步驟,而不是對每個命令重複執行相同的步驟。 – 2012-07-16 07:19:12
是的對於2-3個函數,我很好......但我被要求在初始化時不要傳遞參數。 like myProgram.py<<不允許 我的老師說的和你說的一樣,因爲2-3的命令是好的,但是對於一個巨大的程序來說,它將變得無法維護,我完全無奈......並且不知道如何做到這一點,考慮提示是一個定製的。 –
Whiskey
2012-07-16 07:28:26