首页 > 解决方案 > 有没有办法只在非递归函数中做某事?

问题描述

如果我有这样的功能:

def function(some number, steps):
  if steps == 1: return 1
  result = some calculation + function(some number, steps - 1)
  return round(result, 2)

它返回一些浮点数。
我的问题是:只有当我从整个函数返回结果而不是从递归调用返回结果时(以节省计算的精度),有没有办法返回舍入结果。
我希望你能理解我的问题。
提前致谢。

标签: pythonfunctionrecursion

解决方案


一般来说,如果你想检测你在 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)

推荐阅读