Python readline,使用Cmd接口完成制表选项
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python readline,使用Cmd接口完成制表选项,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1227字,纯文字阅读大概需要2分钟。
内容图文
![Python readline,使用Cmd接口完成制表选项](/upload/InfoBanner/zyjiaocheng/771/e1b703da755145a3ad8b7552255e0849.jpg)
我在Python中使用cmd.Cmd类为我的程序提供了一个简单的readline接口.
自包含的例子:
from cmd import Cmd
class CommandParser(Cmd):
def do_x(self, line):
pass
def do_xy(self, line):
pass
def do_xyz(self, line):
pass
if __name__ == "__main__":
parser = CommandParser()
parser.cmdloop()
按两次选项卡将显示可能性.再次按下标签也是如此.
我的问题是,如何在第三个标签按下循环选项?在readline术语中我认为这称为Tab:menu-complete,但我看不到如何将它应用于Cmd实例.
我已经尝试过:
readline.parse_and_bind('Tab: menu-complete')
在实例化解析器实例之前和之后.没运气.
我还尝试将“Tab:menu-complete”传递给Cmd构造函数.在这里也没有运气.
有谁知道它是如何完成的?
干杯!
解决方法:
最简单的技巧是在菜单完成后添加一个空格:
parser = CommandParser(completekey="tab: menu-complete ")
执行的绑定表达式
readline.parse_and_bind(self.completekey+": complete")
然后会成为
readline.parse_and_bind("tab: menu-complete : complete")
第二个空格后的所有内容都被实际忽略,因此它与tab相同:menu-complete.
如果你不想依赖于readline解析的行为(我没有看到它的文档记录),你可以使用str的子类,拒绝扩展为completekey:
class stubborn_str(str):
def __add__(self, other):
return self
parser = CommandParser(completekey=stubborn_str("tab: menu-complete"))
self.completekey“:complete”现在与self.completekey相同.
内容总结
以上是互联网集市为您收集整理的Python readline,使用Cmd接口完成制表选项全部内容,希望文章能够帮你解决Python readline,使用Cmd接口完成制表选项所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。