1. 返回对象的数目   python实际返回的对象

  0 -> None ; 1 -> object ; >1 -> tuple

2. 内部/内嵌函数:如果内部函数的定义包含了再外部函数里定义的对象的引用, 内部函数会变成被称为闭包的特别之物。

3. 装饰器  ------------待补充

4. 非关键字可变长参数(元组):

  def tupleVarArgs(arg1, arg2, *theRest):
      print arg1, arg2
      for w in theRest:
          print w
  tupleVarArgs('aaa', 'bbb', 'ccc', 'ddd')

5. 关键字变量参数(字典)

  def dictVarArgs(arg1, arg2, **theRest):
      print arg1, arg2
      for w in theRest.keys():
          print  'the args is %s: %s' % (w, str(theRest[w]))     
  dictVarArgs('aaa', 'bbb', c='ccc', d = 'ddd', e='eee', men=('f', 'fff'))

6. 匿名函数,lambda

  def add(x, y): return x + y <==> a = lambda x, y : x + y

7. 函数式编程内建函数:apply(func[nkw][kw]) 用可选的参数来调用func

  filter(func, seq), 调用一个布尔函数func来迭代遍历每个seq中的元素;返回一个使func返回值为true的元素序列

  fiter()函数的实现:

  def filter(boo_func, seq):

    filtered_seq = []

    for eachItem in seq:

      if bool_func(eachItem):

        filtered_seq.append(eachItem)

    return filtered_seq

8. map(func, seq) ,将函数func作用到seq中的每个元素上,返回每个元素调用过func() 的seq

  map() 函数的实现:

  def map(func, seq):

    mapped_sqe=[]

    for eachItem in seq:

      mapped_seq.append(func(eachItem))

    return mapped_seq

9. redunce(func, seq), 他通过去除序列的头两个元素, 将他们传入二元函数来获得一个单一的值来实现。然后又用这个值和序列的下一个元素来获得又一个值,然  后继续直到整个序列的内容都遍历完毕以及最后的结果被计算出来为止。

  reduce(func, [1, 2, 3]) 等价于 func(func(1, 2), 3)

  reduce(func, seq, init=None)的实现:

  def reduce(bin_func, seq, init=None):

    Iseq = list(seq)

    if init is None:

      res = lseq.pop(0)

    else:

      res = init

    for item in lseq:

      res = bin_func(res, item)

    return res

10.  偏函数: 函数固化第一个参数为固定参数,

  from functools import partial ; from operator import add, mul

      eg: add3 = partial(add, 3) ; add(x)  ==== add(x, 3)

         mul5 = partial(mul, 5); mul5(x) ==== mul(x, 5)

      将二进制转化为int:   baseTwo = partial(int, base=2); baseTwo('1000')

11. 变量作用于:局部,全局,global语句

12. 闭包: 如果在一个内部函数中, 对在外部作用域(但不是全局作用域)的变量进行引用,那么内部函数就被认为是闭包。

  def counter(st=0):
    count=[st]
    def incr():
        count[0] += 1
        return count[0]
    return incr

>>> count = counter(5)
>>> print count()

>>> 6

day8_python学习笔记_chapter11_函数的更多相关文章

  1. Matlab学习笔记 figure函数

    Matlab学习笔记 figure函数 matlab中的 figure 命令,能够创建一个用来显示图形输出的一个窗口对象.每一个这样的窗口都有一些属性,例如窗口的尺寸.位置,等等.下面一一介绍它们. ...

  2. matlab学习笔记 bsxfun函数

    matlab学习笔记 bsxfun函数 最近总是遇到 bsxfun这个函数,前几次因为无关紧要只是大概看了一下函数体去对比结果,今天再一次遇见了这个函数,想想还是有必要掌握的,遂查了些资料总结如下. ...

  3. matlab学习笔记13_1 函数返回值

    一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 参考文献 https://blog.csdn.net/qq_36556 ...

  4. swift学习笔记2——函数、闭包

    之前学习swift时的个人笔记,根据github:the-swift-programming-language-in-chinese学习.总结,将重要的内容提取,加以理解后整理为学习笔记,方便以后查询 ...

  5. haskell学习笔记_函数

    一开始学习函数式编程语言就被告知函数式编程语言是一种“定义式”的语言,而不是一种命令式的语言,在学习haskell的函数语法时,此感觉更加强烈,haskell的函数定义倾向于一种类似C++里面的swi ...

  6. Python学习笔记之函数

    这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...

  7. es6学习笔记-async函数

    1 前情摘要 前段时间时间进行项目开发,需求安排不是很合理,导致一直高强度的加班工作,这一个月不是常说的996,简直是936,还好熬过来了.在此期间不是刚学会了es6的promise,在项目有用到pr ...

  8. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  9. javascript学习笔记--迭代函数

    概要 这里的迭代函数指的是对数组对象的操作方法,js数组共有五个迭代函数:every.fifter.forEach.map.some. 1.every every方法,返回值为Boolean类型,tr ...

随机推荐

  1. MResource

    public class MResource { public static int getIdByName(Context context, String className, String nam ...

  2. UVA1600 Patrol Robot

    题意: 求机器人走最短路线,而且可以穿越障碍.N代表有N行,M代表最多能一次跨过多少个障碍. 分析: bfs()搜索,把访问状态数组改成了3维的,加了个维是当前能跨过的障碍数. 代码: #includ ...

  3. MapReduce编程小结

    (1)key-value到map端比较容易,每个分片都会交由一个MapTask,而每个分片由InputFormat(一般是FileInputFormat)决定(一般是64M),  每个MapTask会 ...

  4. Android 自定义shape圆形按钮

    Shape的属性: solid 描述:内部填充 属性:android:color 填充颜色 size 描述:大小 属性: android:width 宽 android:height 高 gradie ...

  5. PHP5的类与对象

    类是一个由变量和方法组成的独立程序块或功能模块. 人类: 口,脚,身高,体重,姓名,肤色等 (变量) 说话,行走等(方法) 丁三石,马化树,张夕阳(具体对象) 类的定义和对象的创建

  6. C的陷阱和缺陷研读笔记02

    宏: 宏不是函数 展开会产生庞大的表达式 #define MIN(A,B) ((A) <= (B) ? (A) : (B))MIN(*p++, b)会产生宏的副作用 剖析: 这个面试题主要考查面 ...

  7. [Django 1.5] Windows + Apache + wsgi配置

    基本步骤 下载安装Apache http://httpd.apache.org/download.cgi. 下载安装modwsgi 模块http://code.google.com/p/modwsgi ...

  8. C#内存操作

    原文:[转]C#内存操作 最近闲来无事发现周围的朋友都在玩<植物大战僵尸>的游戏!于是动了制作这游戏工具的念头!虽然在网上同类工具很多 但是用C#写的我几乎看不到!所以我想用C#写一个!  ...

  9. C语言入门(17)——C语言数组应用的一个实例

    本篇通过一个实例介绍使用数组的一些基本模式.问题是这样的:首先生成一列0-9的随机数保存在数组中,然后统计其中每个数字出现的次数并打印,检查这些数字的随机性如何.随机数在某些场合(例如游戏程序)中是非 ...

  10. TED Talk-教育如何扼杀创造力

    TED上面有个"11个必须看的TED演讲"的播放列表,"教育扼杀创新"是其中一个.下面贴的是演讲的中文翻译. 早上好. 前面的演讲都很好,对不对? 我已经完全被 ...