一.递归定义
如果一个函数再定义中包含自身的引用,那么我们就说这个函数是递归的(或者称该函数为递归函数)。
代码示例:
# -*- coding:utf-8 -*-
def my_recursive():
"""
最简单的递归函数
"""
my_recursive()
在计算机中,函数调用是通过栈(stack)这种数据结构实现的,每当进入一个函数调用,栈就会加一层栈帧,每当函数返回,栈就会减一层栈帧。由于栈的大小不是无限的,所以,递归调用的次数过多,会导致栈溢出[1]。
在Python中,会因为自身设置的保护措施(限定递归的循环次数,该次数可更改)而不断抛出异常,最后抛出一个RecursionError: maximum recursion depth exceeded异常。
>>> def my_recursive():
... my_recursive()
...
>>> my_recursive()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 2, in my_recursive
File "<stdin>", line 2, in my_recursive
File "<stdin&