Python中闭包的实现及闭包内参数的修改

本文详细介绍了闭包的概念,解释了它如何通过将外层参数与内层函数组合来形成一个整体,从而实现变量和函数的封装,便于多次调用。探讨了闭包在函数式编程中的应用,包括传递代码和数据,以及处理内外层变量冲突的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

闭包

什么是闭包

闭包:外层参数(形参与实参)与内层函数组成的一个整体
形式:函数套函数
作用:

  • 变量和函数组成一个整体,方便多次调用
  • 可以往闭包内传递一部分代码(如函数引用)或数据进去,方便使用
  • 可以给调用传递代码(运算)和数据(参数),调用格式:
闭包的简单模板:
def line(k,b):
    def create_y(x):
        print(k * x + b)
    return create_y

line_1 = line(1,2)  # 相当于create_y
line_1()  # create_y()

注:

  • 类与闭包能达到相同的效果(),但类的对象中包含大量内置函数,而闭包更纯净

  • 函数引用 = 函数名()
    函数引用()

闭包内参数的修改

处理闭包内外层变量的冲突:
修改闭包内层变量为闭包外层变量
nonlcoal 变量名
注:global 修改函数/闭包内的变量为全局变量

def test1():
    x =200
    def test2():
        nonlocal x
        print("---1---x=%d" % x)
        x = 100
        print("---2---x=%d" % x)
    return test2
    
ti = test1()
ti()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值