如何在m选择全局或局部向量之间选择n

时间:2017-09-06 21:15:06

标签: algorithm

假设我们要编写一个代码,打印从m个选项中选择n个的所有方法。 我认为,编程语言并不重要,但如果我应该说,Python。 我将赋值放在向量A中。我是否最好将A定义为全局变量或每次将其传递给函数?为什么呢?

def choose(ind, n):
  if n == 0:
    print(A)
    return

  elif len(A)<= ind:
      return
  else:

    A[ind] = 1 
    choose(ind + 1, n - 1)

    A[ind] = 0 
    choose(ind + 1, n)

1 个答案:

答案 0 :(得分:1)

始终 更愿意在可行时传递变异全局变量。

假设您有以下功能:

vold

使用第一个函数,只需将其作为参数传递,就可以加载REPL并将数据抛出。您对该纯函数的测试对程序的其余部分有0影响,这使得测试变得更加容易。

使用第二个函数,每次需要测试它时,必须手动设置函数所依赖的所有全局变量,如果它们依赖于相同的全局变量,则可能会影响其他函数的操作。这使得测试更加困难,因此,应该避免变异全局变量。