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的匿名函数与闭包特性

下面,我们先初步了解一下和匿名函数相关的概念。 ############################################# 匿名函数 #####################...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

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("f...

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

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

关于js的闭包 匿名函数和作用域的几个小点

今天看到js的闭包那一章,被例子搞的头大:首先是关于闭包中的自由变量:var result=[]; function foo(){ var i= 0; for (;i<3;i=i+1)...

Javascript高级程序设计——15-1.匿名函数和闭包

1、匿名函数 表示没有定义函数名的函数 2、闭包 (1)指的是有权访问另一个函数作用域中的变量的函数 (2)创建闭包方法:在一个函数内部创建另一个函数,通过另一个函数访问这个函数的局部变量 闭...

[从jQuery看JavaScript]-匿名函数与闭包(Anonymous Function and Closure)

在csdn看到此文章很经典,保存以防忘掉!  jQuery片段: [javascript] view plaincopy (fun...
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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