python函数式编程-返回函数

一:函数作为返回值

>>> def lazy_sum(*args):
...     def sum():
...         ax = 0
...         for n in args:
...             ax = ax + n
...         return ax
...     return sum
...
>>> f=lazy_sum(1,2,3,4,5)
>>>
>>> f
<function sum at 0x7fd1b3eccaa0>
>>> f()
15
>>> f1=lazy_sum(1,2,3,4,5)
>>> f1()
15
>>> 

二:闭包

>>> def count():
...     fs=[]
...     for i in range(1,4):
...         def f():
...             return i*i
...         fs.append(f)
...     return fs
...
>>> f1, f2, f3 = count()
>>> f1
<function f at 0x7fd1b3edfed8>
>>> f1()
9
>>> f2()
9
>>> f3()
9
>>> 
时间: 2024-10-06 17:17:41

python函数式编程-返回函数的相关文章

Python 函数式编程--返回函数

1.1   返回函数 1.1.1   函数作为返回值 >>> def lazy_sum(*args):    #可变参数 ...    def sum(): ...        ax = 0 ...        for i in args:    #调用外部函数的参数 ...             ax = ax + i ...        return ax ...    return sum       --这里返回的是个函数 ... >>> >>

[4][函数式编程]返回函数[2]

[4][函数式编程]返回函数[2] 高阶函数除了可以接受函数作为参数外,还可以把函数作为结果值返回. 我们来实现一个可变参数的求和.通常情况下,求和的函数是这样定义的: def calc_sum(*args): ax = 0 for n in args: ax = ax + n return ax 但是,如果不需要立刻求和,而是在后面的代码中,根据需要再计算怎么办?可以不返回求和的结果,而是返回求和的函数! def lazy_sum(*args): def sum(): ax = 0 for n

1.python函数式编程-map函数

编程方法论 面向过程 函数式 面向对象 面向过程 将编程过程拆分成多个步骤,在函数中按照每个步骤进行编程: 函数式编程 编程语言定义的函数+数学意义的函数 1.不可变,不用变量保存状态,不修改变量: 2.第一类对象,函数即变量---------高阶函数:把函数当做参数传递给另外一个函数:返回值中包含函数.(装饰器) 3.尾调用:在函数的最后一步调用另外一个函数(最后一行不一定是函数的最后一步) 调用栈:在系统调用递归函数的时候不是最后一步(区别最后一行),则需要保留当前层的状态.如果是最后一步进

python函数式编程-偏向函数

Python的functools模块提供了很多有用的功能,其中一个就是偏函数(Partial function).要注意,这里的偏函数和数学意义上的偏函数不一样. 在介绍函数参数的时候,我们讲到,通过设定参数的默认值,可以降低函数调用的难度.而偏函数也可以做到这一点.举例如下: int()函数可以把字符串转换为整数,当仅传入字符串时,int()函数默认按十进制转换: >>> int('12345') 12345 但int()函数还提供额外的base参数,默认值为10.如果传入base参数

Python 函数式编程--匿名函数Lambda

1.1   匿名函数 有些时候,不需要显式地定义函数,直接传入匿名函数更方便. >>> list(map(lambda x:x*x, (1, 2, 3, 4, 5))) [1, 4, 9, 16, 25] 冒号前面的x表示函数参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果. >>> f = lambda x: x * x >>> f(2) 4 >>> def build(x, y): ..

python函数式编程-匿名函数

>>> map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]) [1, 4, 9, 16, 25, 36, 49, 64, 81] 关键字lambda表示匿名函数,冒号前面的x表示函数参数. 匿名函数有个限制,就是只能有一个表达式,不用写return,返回值就是该表达式的结果.

python之函数式编程与函数闭包

防伪码:忘情公子著 Python函数式编程: 函数式编程: 也称作泛函编程,是一种编程范型,说白了就是实现可以把函数当参数传递给另一个函数: 它将电脑运算视为数学上的函数计算,并且避免状态以及可变数据: 函数式编程语言最重要的基础是lambda演算,而且lambda演算的函数可以接受函数当作输入和输出 Python支持有限的函数式编程功能: filter(func,seq): 调用一个布尔函数func来迭代遍历每个seq中的元素:返回一个使func返回值为true的元素的序列 In [1]: d

Python进阶之函数式编程(把函数作为参数)

什么是函数式编程? 什么是函数式编程? 函数:function 函数式:functional,一种编程范式 函数式编程是一种抽象计算的编程模式 函数≠函数式,比如:计算≠计算机 在计算机当中,计算机硬件是最底层的,而越往上语言越高级 低--------------------------------->高计算机硬件-->汇编语言-->c语言-->Python语言 ↓ ↓ ↓ 指令 函数 函数式计算机------------------------>计算(数学) ○ 函数式编程

深入浅出 Python 函数式编程

1.函数式编程的定义与由来 如果程序中的函数仅接受输入并产生输出,即输出只依赖于输入,数据不可变,避免保存程序状态,那么就称为函数式编程(Functional Programming,简称FP,又称泛函编程). 这种风格也称声明式编程(Declarative Programming),与之相对的是指令式编程(Imperative Programming),后者中的对象会不断修改自身状态.函数式编程强调程序的执行结果比执行过程更重要,倡导利用若干简单的执行单元让计算结果不断渐进,逐层推导复杂的运算