python闭包

闭包


在python中,闭包是理解修饰器的基础。

构成闭包的条件:

  • 需要嵌套内部函数
  • 内部函数使用外部函数的参数
  • 返回值为内部函数名
示例

def func():
    a = 10
    def inner_func():
        print('a的值为',a)
    return inner_func

x = func()
x()

代码解读:
func函数返回的是inner_func的地址,所以返回值x等价于inner_func,调用函数需要加括号。

闭包的特点:保存参数状态

示例
# 复杂的闭包(含参数)
def func(b,c):
    a = 10
    def inner_func():
        print('a+b+c的值为',a+b+c)
    return inner_func

x1 = func(1,2)

x2 = func(3,4)

x1()
x2()

输出结果:

a+b+c的值为 13
a+b+c的值为 17

代码解读:第二次调用并没有改变第一次调用中b和c的值。

闭包的缺点

  • 作用域郿那么直观
  • 因为变量不会被垃圾回收,所以有一定的内存占用问题。
全部评论

相关推荐

小浪_Coding:找硬件测试,也可兼顾软测欧, 简历还可以的 ,注意排版,项目写的有条理一点, 然后个人技能多加点, 润色好简历之后就开始沟通海投了,深圳,东莞这边做硬件相关的公司还不少, 医疗类,仪器类的都可以尝试
点赞 评论 收藏
分享
陆续:不可思议 竟然没那就话 那就我来吧 :你是我在牛客见到的最美的女孩
点赞 评论 收藏
分享
找个工作 学历是要卡的 要求是高的 技能不足是真的 实习经验是0的 简历无处可写是事实的 钱不好赚是真的 想躺平又不敢躺 也不甘心躺 怕自己的灵感和才华被掩埋甚至从未被自己发现 又质疑自己是否真正有才华
码农索隆:你现在啊,你心里都明白咋回事,但是你没办法改变现状,一想到未来,你又没有信心狠下心来在当下努力。 得走出这种状态,不能一直困在那里面,哪不行就去提升哪,你一动不动那指定改变不了未来,动起来,积少成多才能越来越好
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务