Skip to content

Python 递归函数与高阶函数

函数不仅能“运行代码”,还可以像变量一样使用、传递和返回。把函数当作“第一类对象”来看待。这种特性是理解 装饰器(Decorator) 的前提。

一、高阶函数:函数也能传来传去

高阶函数就是:把函数当作参数,或者把函数当作返回值的函数。

高阶函数示例

apply 函数接收另一个函数 square,并在内部调用它。这就叫做高阶函数。

python
def apply(func, value):
    return func(value)

def square(x):
    return x * x

print(apply(square, 4))  # 输出: 16

Python 闭包:函数也能有“记忆”

在 Python 中,函数不仅能执行代码,还能“记住信息”!这种能力叫做 闭包(Closure)

闭包 = 一个函数 + 它记住的外部变量 也就是说,当一个内部函数引用了外部函数的变量,并且外部函数已经执行完毕,这个内部函数仍然可以使用那个外部变量,这种情况就叫闭包

闭包示例

下面这段代码演示了闭包的结构和作用:

python
# 定义外部函数
def outside(x):
    # 定义内部函数,并引用了 x 变量
    def inside(y):
        return x + y

    # 返回内部函数地址(不是调用)
    return inside

# 调用外部函数,返回 inside 函数(它记住了 x=1)
in_func = outside(1)

# 调用返回的函数,相当于执行 inside(2),即 1 + 2
result = in_func(2)
print(result)  # 输出: 3

二、递归函数:函数自己调用自己

2.1 什么是递归?

递归就是一个函数在里面调用自己本身,直到满足终止条件。

2.2 示例:计算阶乘

python
def factorial(n):
    if n == 1:
        return 1
    return n * factorial(n - 1)

print(factorial(5))  # 输出: 120

TIP

下一步:理解装饰器