python - 有没有办法只在非递归函数中做某事?
问题描述
如果我有这样的功能:
def function(some number, steps):
if steps == 1: return 1
result = some calculation + function(some number, steps - 1)
return round(result, 2)
它返回一些浮点数。
我的问题是:只有当我从整个函数返回结果而不是从递归调用返回结果时(以节省计算的精度),有没有办法返回舍入结果。
我希望你能理解我的问题。
提前致谢。
解决方案
一般来说,如果你想检测你在 Python 中的递归调用中,你可以像这样向函数添加一个默认参数:
def my_func(arg1, arg2, _inside_recursion=False):
# Default calls will have _inside_recursion as False
# Make sure that your recursive calls set the parameter
recursive_result = my_func(arg1, arg2, _inside_recursion=True)
推荐阅读
- php - 二维数组 (ID, value) 中的复选框,$_POST 只能传输 ID 或值,但两者都需要 --- 做什么?
- powershell - 在 PowerShell 中使用 Selenium,无法捕获下拉列表
- heroku - 如何在heroku上部署vuejs + adonis-api only项目?
- c++ - 相同的结构可以在 C++ 中分配不同的内存大小吗?
- excel - Excel 公式如果返回 false
- dataweave - 如何根据 id 值合并 2 个字段并确保该字段是否不可用
- game-engine - 浏览器上的虚幻引擎 4
- sql-server - 日期计数将在存储过程中的特定条件下显示,例如 [0-6 天]、[7-14 天] 等
- ios - 在 iOS swift 4.2 中更改根视图控制器时,状态栏突然隐藏
- snmp - Zabbix snmpv3 - items 不起作用,但 snmpwalk 可以