python - 如何在递归函数中保持值不变?
问题描述
例子:
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)
推荐阅读
- java - jsoup 获取下一个 div 元素
- reactjs - 读取父级中的状态子级值
- ios - 通过代码添加多个图像视图
- c++ - Qt:在 ucrtbase.dll 分配堆对象崩溃
- pandas - 在 seaborn 中绘制重采样数据
- matlab - Simulink Desktop Real-Time (R2017b):GUIDE 应用程序的数据记录失败
- r - 如何获取单个 ID 的多个条目并显示在同一行中?
- c++ - 从服务创建流程
- arrays - 我们认为二维数组的指针在空间复杂度中的大小是多少?
- ios - DISPATCH_TIME_FOREVER 将如何在 ios 应用程序中工作?