一文搞懂Python闭包函数

闭包(Closure)是Python中一种特殊的函数对象,它可以记住并访问定义它的作用域中的变量,即使该作用域已经执行完毕。闭包是函数式编程的重要概念,在Python中有着广泛的应用。

一、闭包的基本概念

1.1 什么是闭包

闭包是指一个函数及其相关的引用环境的组合。具体来说:

  • 函数内部定义了另一个函数(嵌套函数)
  • 内部函数引用了外部函数的变量
  • 外部函数返回内部函数

1.2 闭包的三要素

  1. 嵌套函数
  2. 内部函数引用外部函数的变量
  3. 外部函数返回内部函数

二、闭包的基本示例

2.1 简单闭包

def outer_func(x):
    def inner_func(y):
        return x + y
    return inner_func

closure = outer_func(10)  # x被"记住"为10
print(closure(5))  # 15
print(closure(10))  # 20

2.2 闭包的状态保持

def counter():
    count = 0
    
    def increment():
        nonlocal count
        count += 1
        return count
    
    return increment

my_counter = counter()
print(my_counter())  # 1
print(my_counter())  # 2
print(my_counter())  # 3

三、闭包的高级特性

3.1 闭包与变量作用域

闭包可以访问多个外部变量:

def power_factory(exponent):
    def power(base):
        return base ** exponent
    return power

square = power_factory(2)
cube = power_factory(3)

print(square(5)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值