python cmd2 使用第一个包含连字符的命令

问题描述 投票:0回答:1

使用 CMD2 CLI 我想创建一个在第一个命令中有连字符的命令。

def do_command_something(self, args):
   print("command-something")

我希望它按如下方式工作

cmd> command-something
command-something

我已经寻找了一段时间,但无法在 CMD2 框架内找到一种方法来完成这项工作。

python command-line-interface cmd2
1个回答
0
投票

连字符不是 Python 中标识符的有效字符,因此不能直接在类定义中用它命名方法。

相反,首先使用不同的名称定义方法,然后使用

setattr
为该方法指定所需的名称(带连字符)。如果您愿意,您可以删除之后的原始名称:

import cmd2

class App(cmd2.Cmd):
    def do_test_hyphen(self, args):
        print(args)

setattr(App, 'do_test-hyphen', App.do_test_hyphen)
del App.do_test_hyphen
App().cmdloop()
© www.soinside.com 2019 - 2024. All rights reserved.