【发布时间】:2019-07-25 20:13:23
【问题描述】:
我正在开发一个用 python 3.7 编写的终端应用程序。目前,当输入命令时,它会通过如下所示的函数传递:
def execute(command):
if command is None or command.isspace() or command == "":
terminal()
command = command.split(" ")
command = list(command)
command[0] = command[0].lower()
var(command)
iftrue(command)
... etc
每个函数看起来像这样:
def func(command):
if command[0] == "func":
function code blah blah blah
我没有尝试过其他方法,因为我不确定该使用什么 - 我正在使用这种方法,因为我看到一段很久以前使用过的代码。
最好的(最有效/优化)方法是什么?这似乎非常浪费和缓慢,而且功能更多,列表中较低的功能可能需要相当长的时间才能达到。
【问题讨论】:
-
您可能应该为这些任务使用专用模块,例如
argparse或cmd -
@DeepSpace 你能详细说明一下吗?
-
对这些模块进行一些研究,您会发现比我在评论/答案docs.python.org/3/library/argparse.html 和docs.python.org/3.7/library/cmd.html 中无法容纳的更多信息
-
...我只是在@DeepSpace 模块列表中添加了一些第 3 方模块:
click、invoke、docopt -
不管怎样,我在工作中使用
click效果很好。
标签: python python-3.x performance optimization