通过关键字/函数运行的最有效方法是什么?

时间:2019-07-25 20:13:23

标签: python python-3.x performance optimization

我正在使用 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

由于不确定使用什么方法,因此我没有尝试过其他方法-我之所以使用这种方法,是因为我看到一段很久以前使用它的代码。

什么是最好的(最有效/最优化)方式?这似乎非常浪费且缓慢,并且功能更多,列表下方的功能可能需要花费大量时间。

1 个答案:

答案 0 :(得分:1)

我将使用字典,其中命令字符串是键,函数是值。字典将具有log(n)搜索时间,并且应使树结构保持平衡。因此,将d作为dict,定义与此类似:

d = {'func1': myFunc1, 'func2': MyFunc2...}

当然:

def myFunc1(args..):
    ...

def myFunc2(args..):
    ...

我们最终得到:

if cmd in d:
    d[cmd](args...)