通过重组导入优化Python

2024-06-09 18:27:18 发布

您现在位置:Python中文网/ 问答频道 /正文

我在努力提高程序的速度。除了消除冗余,使用循环而不是执行每一行,我想知道是否把所有的方法放在一个主程序中调用它们,或将这些方法划分成其他较小的程序,然后导入这些较小的程序并在主程序中调用,在速度上会有所不同?你知道吗

另外,看下面两种导入,我想第一种比较快?你知道吗

  1. 你知道吗

    from ProgramA import MethodX
    
    MethodX.do something
    
  2. 你知道吗

    import ProgramA
    
    ProgramA.MethodX.do something
    

Tags: 方法fromimport程序do速度somethingprograma
1条回答
网友
1楼 · 发布于 2024-06-09 18:27:18

当你谈论你的程序的速度时,你的问题的答案是否定的。你提到的事情都无关紧要。导入差异不会使程序显著加快,也不会使代码进入for循环。如果你想了解什么是真正重要的程序效率搜索大O符号和阅读一些东西。但例如,考虑寻找最大公分母。你知道吗

找到两个数字的GCD的第一件事是这样的。。。你知道吗

def GCD (num1, num2):
    for i in reversed(range(1, num1)):
         if (num1 % i == 0) and (num2 % i == 0):
             return i

现在,这个程序可以解决你的问题。但这不是解决问题的最好办法。最好的方法叫欧几里德算法。。。例如。你知道吗

def GCD(num1, num2):
    if (num2 == 0):
       return num1
    else:
       return GCD(num2, num1 % num2)

这个算法比较好。所以这个故事的寓意是,当你谈论程序的速度和效率时,你在试图找到解决问题的最佳方法,就像上面的例子一样。像你上面所说的这些小事真的无关紧要。然而,如果你真的需要更快的速度,那就去多处理和并行计算吧。你知道吗

相关问题 更多 >