如何在递归函数中保持值不变?

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)