• High order function
  1. map(f,Iterable),将f依次作用在Iterable的每个元素然后返回一个Iterator,再用list(map(f,Iterable))进行转换得到一个Iterable的结果;
  2. reduce(f,Iterable),函数f必须接收两个参数[如f(x,y),x表示之前的累积结果,y表示当前要参与运算的序列中的一个元素],reduce返回一个累积结果;
  3. filter(f,Iterable),筛选函数,将f依次作用在序列中的每个元素,若结果为true则保留元素,最终得到一个Iterator;
  4. sorted(Iterable,key=f),排序函数,按照f返回的结果作为key值进行自定义排序返回一个Iterable;   sorted(Iterable,key=f,reverse=True)表示进行反向排序。
  • 返回函数
  1. 在函数中定义函数,且外部函数返回所定义的函数,当调用外部函数时,相关变量和参数都保存在返回函数中,且返回函数并没有立刻执行,而是直到调用返回函数时才会执行;
  2. 每次调用外部函数f都会返回一个新函数g,每个返回的函数即使有传入相同参数,g1!=g2;
  3. 返回函数中不能引用任何循环变量或者可能会变化的变量。
  • 匿名函数

用lambda关键字表示,lambda x: x*x,冒号前面的x为参数,之后的为返回值。

  • 装饰器

1.装饰器的作用是为已经存在的对象添加额外的功能,而不改变已有对象本身,如插入日志、性能测试、事务处理、缓存、权限验证等场景;

2. 附上对一个作业题答案的理解:同时支持带参数或者不带参数的log。

import functools
def log(params):
def decorate(func):
@functools.wraps(func)#保证调用时的函数__name__属性不变
def wrapper(*args, **kw):
output = '%s %s()' % (params, func.__name__) or ('call %s()' % func.__name__)
print(output)
return func(*args, **kw)
return wrapper
if hasattr(text,'__call__'): #说明是无参数版本
func = params
params = None
return decorate(func) #应该是类似调用deorate()函数,返回一个wrapper;此处若没有前两句,直接return decorate(params),print出的文本是对函数的一个说明
else:
return decorate #带参版log,直接返回一个decorate函数
@log #语法糖
def now():
print('I am now!')
  • 偏函数

来自functools.partial 用来帮助创建一个偏函数,即把一个函数的某些参数设置默认值。e.g. int2=functools.partial(int,base=2) 把二进制字符串转为整数。

Python函数式编程学习笔记的更多相关文章

  1. python 函数式编程学习笔记

    函数基础 一个函数就是将一些语句集合在一起的部件,它们能够不止一次地在程序中运行.函数的主要作用: 最大化的代码重用和最小化代码冗余 流程的分解 一般地,函数讲的流程是:告诉你怎样去做某事,而不是让你 ...

  2. python网络编程学习笔记(三):socket网络服务器(转载)

    1.TCP连接的建立方法 客户端在建立一个TCP连接时一般需要两步,而服务器的这个过程需要四步,具体见下面的比较. 步骤 TCP客户端 TCP服务器 第一步 建立socket对象  建立socket对 ...

  3. Python核心编程--学习笔记--4--Python对象

    现在开始学习Python语言的核心部分.首先了解什么是Python对象,然后讨论最常用的内建类型,接下来讨论标准类型运算符和内建函数,之后给出对标准类型的不同分类方式,最后提一提Python目前还不支 ...

  4. Python核心编程--学习笔记--3--Python基础

    本章介绍基本的Python语法.编程风格:并简要介绍标识符.变量和关键字,以及变量占用内存的分配和回收:最后给出一个较大的Python样例程序来体验这些特性. 1 语句和语法 1.1 注释 可以在一行 ...

  5. Python核心编程--学习笔记--1--Python简介

    本章介绍了Python的背景知识,包括什么是Python.Python的起源以及Python的一些关键特性. 1 什么是Python Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大 ...

  6. Python核心编程--学习笔记--9--文件和输入输出

    本章将深入介绍Python的文件处理和相关输入输出能力,包括:文件对象(以及它的内建函数.内建方法和属性),标准文件,文件系统的访问方法,文件执行,最后简要涉及持久存储和标准库中与文件有关的模块. 1 ...

  7. Python核心编程--学习笔记--8--条件与循环

    本章讲述if.while.for以及与他们搭配的else.elif.break.continue.pass等语句. 1 if语句 语法:三部分——关键字if.条件表达式.代码块.(记住冒号) if c ...

  8. Python核心编程--学习笔记--7--字典和集合

    本章介绍Python语言中的映射类型(字典)和集合类型,包括操作符.工厂函数.内建函数与方法. 1 字典 字典是Python中唯一的映射类型——键key直接映射到值value.字典是容器类型,其对象是 ...

  9. Python核心编程--学习笔记--6--序列(下)列表、元组

    11 列表 类似于C语言的数组,但是列表可以包含不同类型的任意对象.列表是可变类型. 创建列表——手动赋值.工厂函数: >>> aList = [12, 'abc'] >> ...

随机推荐

  1. JDBC 内部资料 请勿转载 谢谢合作

    一.JDBC常用接口.类介绍 JDBC提供对独立于数据库统一的API,用以执行SQL命令.API常用的类.接口如下: DriverManager 管理JDBC驱动的服务类,主要通过它获取Connect ...

  2. [TCPIP] DNS Note

    TCPIP DNS  域名系统 DNS 是一个应用于TCP/IP应用程序的分布式数据库,它提供主机名字和IP地址之间的转换及有关电子邮件的选路信息. 对DNS的访问是通过一个地址解析器来完成的,在Un ...

  3. easyUI-combobox 动态绑定数据源

    前台 <link rel="stylesheet" type="text/css" href="../css/easyui.css"/ ...

  4. 在MAC服务器上搭建docker-registry(转)

    在MAC服务器上搭建docker-registry 2014-03-14      0个评论    来源:在MAC服务器上搭建docker-registry   收藏    我要投稿 本文介绍如何在M ...

  5. 深入了解try catch

    @Test public void testWeiXin(){ System.out.println(task()); } private boolean task(){ try { int i = ...

  6. 关于APP程序员泡沫经济

    这些年,移动互联网非常火,火到掀起学习iOS.安卓以及H5的热潮.有人将这些新技术作为自己的实力补充,增加竞争力:更多的人将它们作为主业,专职做移动开发.但是,即便有移动开发人员不断涌入,对整个行业来 ...

  7. c语言简易文法

    <程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→< ...

  8. 微信小程序-表单组件

    button 按钮 注:button-hover 默认为{background-color: rgba(0, 0, 0, 0.1); opacity: 0.7;} 示例代码: /** wxss **/ ...

  9. centos7 docker zookeeper

    docker run --name=zookeepertmp -i -t centos7/jdk7 /bin/bash cd /home wget http://apache.fayea.com/zo ...

  10. Unity3d外包(北京)公司(长年承接U3D外包)

    我们制作各类型严肃游戏,虚拟现实,增强现实项目! 品质保证,售后完备. 联系请加QQ:372900288  电话:13911652504 我们团队成立于2011年10月,是一个专业从事严肃游戏研发的团 ...