美文网首页
Python_函数式编程_高阶函数_返回函数

Python_函数式编程_高阶函数_返回函数

作者: 宋木木的征途是星辰大海 | 来源:发表于2020-01-29 17:25 被阅读0次

返回函数

顾名思义,函数可以作为返回值进行返回;

但是我们持有返回的函数有什么样的用处呢?

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

这时当我们调用lazy_sum()时,返回的并不是求和结果,而是求和函数:

>>> f = lazy_sum(1, 3, 5, 7, 9)
>>> f
<function lazy_sum.<locals>.sum at 0x101c6ed90>

调用函数f时,才真正计算求和的结果:

>>> f()
25

闭包

返回闭包时牢记一点:返回函数不要引用任何循环变量,或者后续会发生变化的变量。

如果一定要引用循环变量怎么办?方法是再创建一个函数,用该函数的参数绑定循环变量当前的值,无论该循环变量后续如何更改,已绑定到函数参数的值不变:

def count():
    def f(j):
        def g():
            return j*j
        return g
    fs = []
    for i in range(1, 4):
        fs.append(f(i)) # f(i)立刻被执行,因此i的当前值被传入f()
    return fs

结果

>>> f1, f2, f3 = count()
>>> f1()
1
>>> f2()
4
>>> f3()
9

相关文章

  • Kotlin函数式编程

    什么是函数式编程 函数式编程是于面向对象编程范式相齐名的一种编程方式,主要依赖于高阶函数返回的数据,这些高阶函数专...

  • Python_函数式编程_高阶函数_返回函数

    返回函数 顾名思义,函数可以作为返回值进行返回; 但是我们持有返回的函数有什么样的用处呢? 这时当我们调用lazy...

  • 异常、try 语句、raise 语句、bytes和bytearr

    昨天回顾id(x) 函数is / is not 运算符函数式编程高阶函数map(函数, 可迭代对象) # 返回生...

  • Python高阶函数总结

    一、高阶函数 把函数作为参数传入 ,这样的函数称为高阶函数,高阶函数是函数式编程的体现。函数式编程就是指这种高度抽...

  • Python之函数

    课程大纲 函数定义 函数的参数 函数的返回值 高阶函数 函数作用域 递归函数 匿名函数 内置函数 函数式编程 将函...

  • 高阶python 函数式编程

    高阶python 函数式编程 - 函数式 函数式编程(FunctionalProgramming) - 基于lam...

  • kotlin--函数式编程

    函数式编程范式主要依赖于高阶函数(以函数为参数或返回值)返回的数据,这些高阶函数专用于处理各种集合,可以联合使用多...

  • Swift函数式编程与面向协议编程

    函数式编程(FP) 一、函数式编程(FP)-高阶函数 二、函数式编程(FP) - 柯里化(Currying) 三、...

  • 2020-02-02python学习记录(3)-函数式编程&模块

    四、函数式编程: 函数式编程,有利于代码的管理,后期的代码的迭代和修改。函数的封装参数的传递,返回值的返回。 高阶...

  • Kotlin 函数式编程思想 FP in Kotlin

    Kotlin 函数式编程思想 : FP in Kotlin 函数式编程特性 闭包和高阶函数 函数编程支持函数作为第...

网友评论

      本文标题:Python_函数式编程_高阶函数_返回函数

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