加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

使用Python cmd模块的命令的别名

发布时间:2020-12-16 23:34:23 所属栏目:Python 来源:网络整理
导读:如何在使用cmd模块实现的面向行的命令解释器中为命令创建别名? 要创建命令,我必须实现do_cmd方法.但我有长名称(如约束)的命令,我想为这些命令(如co)提供别名(实际上是快捷方式).我怎样才能做到这一点? 我想到的一种可能性是实现do_alias(如do_co)方法,并在
如何在使用cmd模块实现的面向行的命令解释器中为命令创建别名?

要创建命令,我必须实现do_cmd方法.但我有长名称(如约束)的命令,我想为这些命令(如co)提供别名(实际上是快捷方式).我怎样才能做到这一点?

我想到的一种可能性是实现do_alias(如do_co)方法,并在此方法中调用do_cmd(do_constraint).但是这在CLI的帮助下给我带来了新的命令.

有没有其他方法来实现这一目标?或者可能有办法隐藏帮助输出中的命令?

解决方法

您可以覆盖 default方法并搜索合适的命令处理程序(如 Brian所示):
import cmd

class WithAliasCmd(cmd.Cmd):

    def default(self,line):
        cmd,arg,line = self.parseline(line)
        func = [getattr(self,n) for n in self.get_names() if n.startswith('do_' + cmd)]
        if func: # maybe check if exactly one or more elements,and tell the user
            func[0](arg)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读