Appearance
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
下一步:理解装饰器