使用 CMD2 CLI 我想创建一个在第一个命令中有连字符的命令。
def do_command_something(self, args):
print("command-something")
我希望它按如下方式工作
cmd> command-something
command-something
我已经寻找了一段时间,但无法在 CMD2 框架内找到一种方法来完成这项工作。
连字符不是 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()