python - 关于函数递归函数中的关键字参数
问题描述
当我在第 8 行调用 fibonacci(n - 1) 和 fibonacci(n - 1) 时,我不明白“内存”字典到底发生了什么。我的理解是,如果我在调用函数时没有指定关键字参数,它将采用空字典的默认值。但不知何故,它没有将内存设置为空字典,而是可以访问当前值。
提前致谢
def fibonacci(n, memory = {}):
m = n - 1
if m in memory:
return memory[m]
elif m <= 1:
return 1
else:
memory[m] = fibonacci(n - 2) + fibonacci(n - 1)
return memory[m]
解决方案
推荐阅读
- php - 如何使用 MYSQL 和 PHP 设置 CRON
- ios - iOS cordova 应用程序在 TestFlight 构建中崩溃,与 DEBUG 构建不同
- laravel - 无法在 Windows 10 上安装 Laravel 作曲家
- swift - Swift:使具有相同“形状”的两种类型符合通用协议
- c++ - 为什么我的 while 循环允许错误的尝试次数
- laravel - Laravel 视图加载两次以显示评论
- python - python没有正确显示可执行输出
- r - D3 桑基图:改变节点位置
- keras - 1D CNN、2D CNN 和 3D CNN 的输入形状之间的差异
- javascript - 没有数组时如何使用数组解构?