美文网首页
Python闭包

Python闭包

作者: 人生苦短啊 | 来源:发表于2018-07-21 22:34 被阅读0次

闭包 = 环境变量 + 函数

调用闭包内部的环境变量
def curve_pre():
    b = 10
    c = 106
    def curve(x):
        return b*c*x*x
    return curve

f = curve_pre()
print(f.__closure__)
print(f.__closure__[0].cell_contents)
print(f(1))
# (<cell at 0x00FDF950: int object at 0x591E4720>, <cell at 0x00FDF9B0: int object at 0x591E4D20>)
# 10
# 1060

闭包的经典误区
def curve_pre():
    a = 10

    def curve(x):
        # a被python认为是环境变量,所以构不成闭包
        a = 20
    return curve


f = curve_pre()
print(f.__closure__)                 # None

闭包与非闭包实现人类走路

  1. 非闭包
a = 0

# global引用全局变量
def go(value):
    global a
    newtext = a + value
    a = newtext
    return newtext

print(go1(1))
print(go1(2))
print(go1(3))          # 1 3 6
  1. 闭包
oragin = 0

def factory(args):
    def go(post):
        nonlocal args
        newPost = post+ args
        args = newPost
        return args
    return go

f = factory(oragin)

print(f(1))
print(f(2))
print(f(3))

相关文章

  • python闭包学习

    参考文章 python闭包python闭包一步一步教你认识Python闭包深入浅出python闭包

  • python函数之闭包

    目录 python函数之闭包什么是闭包python中的namespace闭包的条件闭包的优点 python函数之闭...

  • Python 闭包使用注意点

    1 Python 闭包 今天,聊下 python 的闭包。在函数编程中经常用到闭包。 闭包是什么,它是怎么产生的及...

  • python高级之闭包

    python高级之闭包 什么是闭包? 闭包(closure)是函数式编程的重要的语法结构。闭包也是一种组织代码的结...

  • Python 中的闭包

    Python 中的闭包:+ http://python.jobbole.com/82296/

  • python之理解闭包和装饰器

    python之理解闭包和装饰器 1、闭包函数 1.1 python中函数都是对象 结果: 上面定义一个shut函数...

  • 闭包

    浅谈 python 的闭包思想 首先 python的闭包使用方法是:在方法A内添加方法B,然后return 方法B...

  • 2018-11-20

    python函数的闭包 闭包: 嵌套函数调用外部函数的变量 注意: 闭包必须是内部函数调用外部函数定义的变量,这其...

  • Python 入门之 闭包

    Python 入门之 闭包 1、闭包 (1)在嵌套函数内使用(非本层变量)和非全局变量就是闭包 (2)_ clos...

  • Python装饰器(Decorator)完全指南-基础篇

    Decorator基本指南 前提知识 Python中的闭包(closure) 所谓闭包,指的是附带数据的函数对象。...

网友评论

      本文标题:Python闭包

      本文链接:https://www.haomeiwen.com/subject/lxskmftx.html