2015-02-11 17 views
0

在python cmd模塊中,當我按TAB按鈕時,我得到了可用的命令列表,我已經在我的cmd.Cmd類中定義了可用的命令列表。 我的問題是,是否有可能根據例如Cisco路由器CLI的上下文顯示一組命令?基於python cmd模塊上下文完成

+0

什麼是python'cmd'? – 2015-02-11 11:27:33

+0

@PeterWood可能是這個https://docs.python.org/2/library/cmd.html – oxfn 2015-02-11 11:30:08

+0

什麼是* context *?如果* context *是要完成的命令,請查看@oxfn答案。 – return42 2015-02-11 12:01:48

回答

1

我沒有這個LIB任何經驗,但doc

如果建成啓用,完成命令會自動完成,並命令args來完成是通過調用complete_foo()帶參數的文字完成,行,begidx和endidx。 text是我們試圖匹配的字符串前綴:所有返回的匹配都必須以它開頭。線與前導空格刪除當前輸入行,begidx和endidx是開始和前綴文字,這可以用來提供不同的完成取決於哪個位置的說法是在結束索引。

所以,可能是你可以在complete_foo函數中實現基於上下文的完成功能

0

我已經找到了我的問題的答案。可以使用嵌套解釋器,因此嵌套解釋器是另一個解釋器對象,它將擁有自己的命令,這樣每個上下文都可以由嵌套解釋器建模。這裏是一個很好的解釋,例如:

object inheritance and nested cmd