全局变量 vs getter 函数 vs 函数变量

global variable vs getter functions vs function variable

我有一个可以通过多种方式实现的场景。我需要更优化的建议/python 实施方式以及为什么?

让我们将嵌套函数调用视为 funca1 -> funca2 -> funca3 ->funca4 funcb1 -> funcb2 -> funcb3 ->funcb4

if __name__ == "__main__":
    funca1()
    funcb1()

并且 varx 变量仅由 funca4 和 funcb3 使用/或需要。 那么我们有以下选项

  1. 创建 varx 作为全局变量并使用它 funca4 和 funcb3 而不通过所有函数
  2. 将 varx 变量传递给所有函数,即使它仅在两个函数中使用
  3. 创建另一个函数 get_varx() 函数并且只在 funca4、funcb4 中使用它。

这也可以通过创建 class 并将 varx 分配为 属性 来实现。但是项目的当前设计不允许这样做

我运行一个你给的场景的demo代码,使用time模块对执行时间进行计时,得到如下结果:

最快执行排名:

  1. 正在创建另一个函数来获取值。
  2. 正在创建 varx 作为全局变量。
  3. 在所有函数中传递 varx 变量。

优化是相对的。

您可以通过以下方式进行优化:-

  1. 你的代码要少lines/characters

  2. 您想要最小内存消耗

  3. 您想要所需的最短时间。

最小时间将是另一种函数方法

最小内存和最小行数将是全局变量。

通过所有变量传递变量是不必要的,并且会在每个本地范围内复制变量,消耗大量内存,因此应该避免这种情况。