文档章节

python闭包

tavenpy
 tavenpy
发布于 2015/02/28 10:13
字数 217
阅读 7
收藏 0

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

定义在外部函数内但由内部函数引用或者使用的变量称为自由变量

>>> def foo():
...             m = 1
...             def bar():
...                     m = 2
...                     return m
...              print m
...              return bar()
...
>>> print foo()
1

2

结论:内部函数中对变量的操作不会对外部函数中的值产生影响,即可以使用但不可以修改外部变量的值。

© 著作权归作者所有

共有 人打赏支持
tavenpy
粉丝 6
博文 91
码字总数 11490
作品 0
青岛
私信 提问
可爱的 Python : Python中的函数式编程,第二部分

摘要: 本专栏继续让David对Python中的函数式编程(FP)进行介绍。读完本文,可以享受到使用不同的编程范型(paradigm)解决问题所带来的乐趣。David在本文中对FP中的多个中级和高级概念进行了...

enixyu
2013/03/02
3.4K
2
Python二次元世界-Lisp的帝国斜阳 lambda与closure

Python二次元世界-函数式编程 Function , lambda与closure 本章讲述Python语言自Lisp语言演变而来的一些高级函数编程技巧 如闭包(closure) 匿名函数(lambda) 生成器(yield) 嵌套作用域(ne...

圣何塞白话人
2012/05/13
0
0
python三大神器===》装饰器

1.认识装饰器   如果你经常看我的博客,你已经学会了python的前两大‘神器’(迭代器,生成器),那么什么是装饰器呢?就如字面意义装饰器是对某个事物(通常指函数)进行装饰,让其在不修改...

许传坤
2018/08/23
0
0
十个Python码农最容易犯的错误, 十个中有九个程序猿躲不过!

1、滥用表达式作为函数参数默认值 Python允许开发者指定一个默认值给函数参数,虽然这是该语言的一个特征,但当参数可变时,很容易导致混乱,例如,下面这段函数定义: 在上面这段代码里,一...

Python新世界
2018/08/06
0
0
根据面试题谈谈 Python 闭包

题目: 1.什么是闭包?闭包的定义? 2.手写一个简单的闭包 3.变量作用域规则与 nonlocal 关键字? 4.闭包的应用 答案要点: 1.首先,我们要了解变量作用域,上代码: # 示例一def test1(a):...

DemonLS
2018/06/25
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Intellij IDEA中设置了jsp页面,但是在访问页面时却提示404

在Intellij IDEA中设置了spring boot的jsp页面,但是在访问时,却出现404,Not Found,经过查找资料后解决,步骤如下: 在Run/Debug Configurations面板中设置该程序的Working Directory选项...

uknow8692
29分钟前
1
0
day24:文档第五行增内容|每月1号压缩/etc/目录|过滤文本重复次数多的10个单词|人员分组|

1、在文本文档1.txt里第五行下面增加如下内容;两个方法; # This is a test file.# Test insert line into this file. 分析:给文档后增加内容,可以用sed 来搞定;也可以用while do done...

芬野de博客
35分钟前
1
0
深入理解JVM—JVM内存模型

深入理解JVM—JVM内存模型 我们知道,计算机CPU和内存的交互是最频繁的,内存是我们的高速缓存区,用户磁盘和CPU的交互,而CPU运转速度越来越快,磁盘远远跟不上CPU的读写速度,才设计了内存...

onedotdot
53分钟前
1
0
MVC、MVCS、MVVM、MVP、VIPER等这么多架构模式哪一个好呢?

在项目开启阶段,其中一个很重要的环节就是选架构。 那么面对目前已知的这么多架构模式我们该怎么选择呢?这确实是个很让人头疼的问题! 下面我就在这里梳理一下目前常见的一些架构模式。 先...

Java干货分享
今天
4
0
简单模仿配置文件的反射机制

//Student类 public class Student { public void love() { System.out.println("python"); } } //Tesy类 public class Tesy { public static void main(String[] args) throws Exceptio......

南桥北木
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部