如何在递归函数中保持值不变?
How to keep value constant in recursive function?
示例:
def func(n):
if n > 10:
return
CONSTANT = n
print(n + CONSTANT)
func(n + 1)
>>> func(1)
2
3
4
5
6
7
8
9
10
11
>>> func(7)
14
15
16
17
显然这个特定任务可以通过不同的途径来完成,但我想知道这是否可行:在递归函数中有一个常量值,该值用变化的变量表示。
为什么不直接将作为参数传递的值设为全局变量并从函数中访问它?
让它成为你只在递归调用中传递的可选参数。
def func(n, CONSTANT = None):
if n > 10:
return
if CONSTANT is None:
CONSTANT = n
print(n + CONSTANT)
func(n + 1, CONSTANT)
示例:
def func(n):
if n > 10:
return
CONSTANT = n
print(n + CONSTANT)
func(n + 1)
>>> func(1)
2
3
4
5
6
7
8
9
10
11
>>> func(7)
14
15
16
17
显然这个特定任务可以通过不同的途径来完成,但我想知道这是否可行:在递归函数中有一个常量值,该值用变化的变量表示。
为什么不直接将作为参数传递的值设为全局变量并从函数中访问它?
让它成为你只在递归调用中传递的可选参数。
def func(n, CONSTANT = None):
if n > 10:
return
if CONSTANT is None:
CONSTANT = n
print(n + CONSTANT)
func(n + 1, CONSTANT)