美文网首页ITS·黑客
py返回函数、匿名函数

py返回函数、匿名函数

作者: 小灰灰233 | 来源:发表于2017-05-21 18:27 被阅读1次

    一、返回函数

    1、函数作为返回值返回

    def lazy_sum(*args):
    def sum():
    ax=0
    for n in args:
    ax=ax+n
    return ax
    return sum

    f=lazy_sum(1,3,5)
    调用lazy_sum时,返回的是函数
    f()
    调用函数f,才求和

    注:调用lazy_sum时,每次调用都返回一个新的函数(即使传入相同的参数)

    只是函数不同,无法==
    调用出来的值相同

    2、闭包

    1、函数内部定义函数

    内部函数可引用外部函数的参数和局部变量
    返回时,相关参数和变量都保存在返回的函数中

    注:返回的函数并没有立即执行,直到调用f()才执行

    def count():
    fs=[]
    for i in range(1,4):
    def f():
    return i*i
    fs.append(f)
    return fs

    每次循环都创建一个新函数,然后把创建的新函数都返回了

    因为返回的函数引用了i,并非立即执行。等到三个函数都返回时,i已经成了3

    2、返回函数不要引用任何循环变量,或者后续会变化的

    一定要用循环变量,再创建一个函数,将其参数绑定当前值
    def f(j):
    def g():
    return j*j
    return g

    相关文章

      网友评论

        本文标题:py返回函数、匿名函数

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