Python 函数式编程(2) —— 返回函数

Python的函数不但可以返回int、str、list、dict等数据类型,还可以返回函数!
例一. 求和[1, 2, 3, 4]
def calc_sum(lst):
    def calc_sum():
        return sum(lst)
    return calc_sum

f = calc_sum([1, 2, 3, 4])
print(f())
例二. 请编写一个函数calc_prod(lst),它接收一个list,返回一个函数,返回函数可以计算参数的乘积。
from functools import reduce
def calc_prod(lst):
    def prod():
        return reduce((lambda a, b: a*b), lst)
    return prod
       
f = calc_prod([1, 2, 3, 4])
print(f())

时间: 2024-12-19 10:18:20

Python 函数式编程(2) —— 返回函数的相关文章

Python自学笔记之函数式编程5——返回函数

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

Python 函数式编程--高阶函数Map、Reduce、Filter、Sorted

1.1   高阶函数 变量可指向函数 >>> abs(-10) 10 >>> x = abs    --x指向abs函数 >>> x(-1)      --直接调用x 1 调用abs和调用x完全相同. 函数名也是变量 >>> abs = 10 >>> abs(-10) Traceback (most recent call last): File "<stdin>", line 1,

Python函数式编程(把函数作为参数传入)

map:接受两个参数(函数,Iterable),map将传入的函数依次作用于Iterable的每个元素,并且返回新的Iterable def f(x): return x*x r = map(f,[1,2,3,4]) #此时的r为惰性求值--可用next()和for...in取值 #通过list()返回全部 print(list(r)) #[1, 4, 9, 16] reduce:接受两个参数(函数,序列),reduce把一个函数作用于序列上,返回的结果继续和序列的下一个元素做累积计算,其效果为

Python之路Python作用域、匿名函数、函数式编程、map函数、filter函数、reduce函数

Python之路Python作用域.匿名函数.函数式编程.map函数.filter函数.reduce函数 一.作用域 return 可以返回任意值例子 def test1(): print("test1") def test(): print("test") return test1 res = test() print(res) 输出结果 test <function test1 at 0x021F5C90> 分析:这里print(res)输出的是te

深入浅出 Python 函数式编程

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

Python 函数式编程之迭代器、生成器及其应用

python 标准库中提供了 itertools, functools, operator三个库支持函数式编程,对高阶函数的支持,python 提供 decorator 语法糖. 迭代器 (iterator)和生成器(generator)概念是 python 函数式编程的基础,利用迭代器和生成器可以实现函数式编程中经常用到的 map(), filter(), reduce() 等过程以及 itertools, functools 中提供的绝大部分功能. 1.迭代器和生成器基础(next, ite

我是如何开始去了解Python函数式编程--Python函数式编程初涉

Python函数式编程 1. 开始我们会了解什么是函数式编程: 函数:function 函数式:functional,一种编程范式 函数式编程特点:把计算视为函数而非指令,贴近计算 纯函数式编程:不需要变量,没有副作用,测试简单,支持高阶函数,代码简洁 Python支持的函数式编程特点: 不是纯函数式编程:允许有变量 支持高阶函数:函数也可以作为变量传入 支持闭包:有了闭包就能返回函数 有限度的支持匿名函数 2. 高阶函数 变量可以指向函数,函数名其实就是指向函数的变量,而高阶函数其实就是可以接

Python笔记3#Python函数式编程

▲函数式编程Function Programming 函数时Python内建支持的一种封装.我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设计.函数就是面向过程的程序设计的基本单元. 函数式编程也可以归结到面向过程的程序设计,但它的思想更接近数学计算. 函数式编程就是一种抽象度很高的编程范式,纯粹的函数式编程语言编写的函数没有变量. 函数式编程的一个特点就是,允许把函数本身作为参数传入另一个函数,还允许返回另一个函数. Py

(转)Python函数式编程——map()、reduce()

转自:http://www.jianshu.com/p/7fe3408e6048 1.map(func,seq1[,seq2...]) Python 函数式编程中的map()函数是将func作用于seq中的每一个元素,并用一个列表给出返回值.如果func为None,作用通zip().当seq只有一个时,将func函数作用于这个seq的每一个元素上,得到一个新的seq. 举个例子来说明,(假设我们想要得到一个列表中数字%3的余数,那么可以写成下面的代码): >>> print map(la