首页 > 解决方案 > 如何在递归函数中保持值不变?

问题描述

例子:

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

显然,这个特定的任务可以通过不同的途径来实现,但我想知道这是否可行:在递归函数中有一个常量值,它用一个变化的变量来表示。

标签: pythonfunctionrecursionconstants

解决方案


使其成为仅在递归调用中传递的可选参数。

def func(n, CONSTANT = None):
    if n > 10:
        return
    if CONSTANT is None:
        CONSTANT = n
    print(n + CONSTANT)
    func(n + 1, CONSTANT)

推荐阅读