python学习笔记---函数式编程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习笔记---函数式编程相关的知识,希望对你有一定的参考价值。

1. 函数本身也可以赋值给变量,即:变量可以指向函数。

>>> f = abs
>>> f(-10)
10

成功!说明变量f现在已经指向了abs函数本身。直接调用abs()函数和调用变量f()完全相同。

--> 函数名也可以看作是是变量。

编写高阶函数,就是让函数的参数能够接收别的函数(add(-5, 6, abs))

 

map()函数接收两个参数,一个是函数,一个是Iterablemap将传入的函数依次作用到序列的每个元素,并把结果作为新的Iterator返回。

reduce()把一个函数作用在一个序列[x1, x2, x3, ...]上,这个函数必须接收两个参数,reduce把结果继续和序列的下一个元素做累积计算.

filter()也接收一个函数和一个序列, 和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是True还是False决定保留还是丢弃该元素,返回新的Iterator。

sorted()函数可以对list进行排序。sorted(list, key=function, reverse=True)

lambda x: x * x   关键字lambda表示匿名函数,冒号前面的x表示函数参数。

 

一个完整的装饰器decorator的写法如下:

import functools

def log(func):
    @functools.wraps(func) #把原始函数的__name__等属性复制到wrapper()函数中
    def wrapper(*args, **kw):
        print(‘call %s():‘ % func.__name__)
        return func(*args, **kw)
    return wrapper

#带参数的decorator
import functools

def log(text):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args, **kw):
            print(‘%s %s():‘ % (text, func.__name__))
            return func(*args, **kw)
        return wrapper
    return decorator

functools.partial就是帮助我们创建一个偏函数的,简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。
 





以上是关于python学习笔记---函数式编程的主要内容,如果未能解决你的问题,请参考以下文章

python学习笔记---函数式编程

Python学习笔记五函数式编程

Python函数式编程学习笔记

Python学习笔记函数式编程-高阶函数

Python学习笔记——基础篇第六周——模块

Python学习笔记八:文件操作(续),文件编码与解码,函数,递归,函数式编程介绍,高阶函数