note11闭包 匿名函数

转载 2016年05月31日 17:32:24

1、我们在函数lazy_sum中又定义了函数sum,并且,内部函数sum可以引用外部函数lazy_sum的参数和局部变量,当lazy_sum返回函数sum时,相关参数和变量都保存在返回的函数中,这种称为“闭包(Closure)”的程序结构拥有极大的威力。


2、返回闭包时牢记的一点就是:返回函数不要引用任何循环变量,或者后续会发生变化的变量。

3、在传入函数时,有些时候,不需要显式地定义函数,直接传入匿名函数更方便。

还是以map()函数为例,计算f(x)=x2时,除了定义一个f(x)的函数外,还可以直接传入匿名函数:

>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]

4、lambda表示匿名函数,冒号前面的x表示函数参数,匿名函数只能有一个表达式,不用return,也可以把匿名函数赋给一个变量,再利用变量调用该函数


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

6、作用域:在一个模块中,有的函数和变量我们希望给别人使用,有的函数和变量我们希望仅仅在模块内部使用。在Python中,是通过_前缀来实现的。正常的函数和变量名是公开的(public),可以被直接引用,比如:abcx123PI等;类似__xxx__这样的变量是特殊变量,可以被直接引用,但是有特殊用途,比如上面的__author____name__就是特殊变量,hello模块定义的文档注释也可以用特殊变量__doc__访问,我们自己的变量一般不要用这种变量名;

类似_xxx__xxx这样的函数或变量就是非公开的(private),不应该被直接引用,比如_abc__abc等;

相关文章推荐

Python 语言及其应用 Chapter_4_Note_3 闭包_匿名函数lambda_生成器

我们又来到了闭包,上次看其他教程就是从闭包开始崩溃的,感觉这本教材还算通俗些,先做点笔记吧。 讲闭包前,先讲一下关于内部函数 内部函数 在Python 中,可以在函数中定义另外一个函数:...

Js的匿名函数与闭包特性

下面,我们先初步了解一下和匿名函数相关的概念。 ############################################# 匿名函数 #####################...
  • liuzx32
  • liuzx32
  • 2012年07月21日 11:39
  • 639

JavaScript匿名函数与闭包

匿名函数与闭包的相关知识点

一个简单效果用到的js特性(异步编程,匿名函数,闭包)

效果:轮询显示隐藏所有p标签,显示用打印机效果一个字符一个字符地显示,淡出隐藏准备知识 js异步编程(setInterval setTimeout) JS 本身是单线程运行的,不可能在一段代码还未...

iOS经典讲解之Swift匿名函数(闭包)(二)

作者:Loving_iOS 转载请标明出处:http://blog.csdn.net/loving_ios/article/details/49365785 本次讲解的开发环境为Xcode7.0.1 ...

Javascript 匿名函数与闭包

Javascript 匿名函数与闭包一、函数的几种定义1、函数关键字(function) 语句      function func1(){         alert("func1");   ...

闭包 匿名函数的调用 链式作用域 预解析机制

进入主体前先理解一点小知识(js中最常见的两个关键字:var function): 1,全局变量:下面例子中和c都是全局变量 script> var a=10; f...
  • VLilyV
  • VLilyV
  • 2017年06月02日 23:33
  • 186

php源码之路第四章第四节 (匿名函数及闭包)

匿名函数在编程语言中出现的比较早,最早出现在Lisp语言中,随后很多的编程语言都开始有这个功能了,目前使用比较广泛的Javascript以及C#,PHP直到5.3才开始真正支持匿名函数, C++的新标...

PHP匿名函数及闭包

[iefreer] 转载一篇对PHP闭包语法讲解比较深入到位的文章,后续还会转一篇这些新语法如何巧妙应用的文章。匿名函数在编程语言中出现的比较早,最早出现在Lisp语言中,随后很多的编程语言都开始有这...
  • iefreer
  • iefreer
  • 2013年05月14日 18:53
  • 16077

65-匿名函数及闭包

65-匿名函数及闭包匿名函数在编程语言中出现的比较早,最早出现在Lisp语言中,随后很多的编程语言都开始有这个功能了, 目前使用比较广泛的Javascript以及C#,PHP直到5.3才开始真正支持匿...
  • ghostlv
  • ghostlv
  • 2016年04月27日 13:22
  • 807
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:note11闭包 匿名函数
举报原因:
原因补充:

(最多只允许输入30个字)