递归调用是函数嵌套调用的一种特殊形式。函数在调用的时候,直接或者间接的调用了自身。

比如:

#直接调用本身
def f1():
    print('from f1')
    f1()
f1()

#间接调用本身
def f1():
    print('from f1')
    f2()

def f2():
    print('from f2')
    f1()
f1()

# 调用函数会产生局部的名称空间,占用内存,因为上述这种调用会无需调用本身,python解释器的内存管理机制为了防止其无限制占用内存,对函数的递归调用做了最大的层级限制
四 可以修改递归最大深度

import sys
sys.getrecursionlimit()
sys.setrecursionlimit(2000)

def f1(n):
    print('from f1',n)
    f1(n+1)
f1(1)

虽然可以设置,但是因为不是尾递归,仍然要保存栈,内存大小一定,不可能无限递归,而且无限制地递归调用本身是毫无意义的,递归应该分为两个明确的阶段,回溯与递推
View Code

相关文章:

  • 2022-01-12
  • 2021-08-24
  • 2021-05-16
  • 2021-10-27
  • 2022-12-23
  • 2022-02-11
  • 2022-12-23
猜你喜欢
  • 2021-07-20
  • 2022-12-23
  • 2021-10-02
  • 2021-12-19
  • 2021-10-15
  • 2021-09-28
相关资源
相似解决方案