python之闭包

1  闭包概念

绑定了函数内部引用的所有变量,把它引用的东西都放在一个上下文中“包”了起来

2 闭包的Demo理解

需求:比如我们要实现2个函数,每个函数有个参数,然后现在需要实现这2个函数参数的相加功能

1) 不用闭包python普通实现

#!/usr/bin/env python

def plus_first(first):
return first;
def plus_second(second):
return second;

if __name__ == "__main__":
first = plus_first(150);
second = plus_second(200);
result = first + second;
print result

结果:350

2) 用闭包python实现

#!/usr/bin/env python

def plus_first(first):
def plus_second(second):
return first + second;
return plus_second;

if __name__ == "__main__":

plus_second = plus_first(100);
result = plus_second(200);
print result

结果:400

上面的plus_first就是一个闭包,plus_second可以理解为一个匿名函数

3) 用lambda表达式实现

#!/usr/bin/env python

def plus_first(first):
return lambda second1:first + second1

if __name__ == "__main__":

plus_second = plus_first(200);
result = plus_second(200);
print result

结果:400

总结:

通过闭包可以将n个函数相互连接起来,闭包是函数式编程的灵活、是函数式编程的核心。

(0)

相关推荐

  • Python UNIX系统管理指南

    一本个人感觉很不错的书,这些文章算是实践 自带的终端来运行命令 chmod a+x是加读写权限 两个python,前面是目录,后面是选择解释器 #! /usr/bin/env python#A Sys ...

  • (1条消息) python必背100源代码

    (1条消息) python必背100源代码

  • 说说Python中闭包是什么?

    公众号新增加了一个栏目,就是每天给大家解答一道Python常见的面试题,反正每天不贪多,一天一题,正好合适,只希望这个面试栏目,给那些正在准备面试的同学,提供一点点帮助! 小猿会从最基础的面试题开始, ...

  • Python 中的函数装饰器和闭包

    函数装饰器可以被用于增强方法的某些行为,如果想自己实现装饰器,则必须了解闭包的概念. 装饰器的基本概念 装饰器是一个可调用对象,它的参数是另一个函数,称为被装饰函数.装饰器可以修改这个函数再将其返回, ...

  • 面试题-python 什么是闭包(closure)?

    前言 前面学了装饰器,那么闭包和装饰器有什么区别呢? 闭包传递的是变量,而装饰器传递的是函数对象,只是传的参数内容不一样,闭包的概念包含了装饰器,可以说装饰器是闭包的一种,它只是传递函数对象的闭包. ...

  • 如何去使用Python里面的函数式编程和闭包?

    对于开发者来说除了基础语法之外,一些比较常用的开发手段也是需要去学习和使用的.这里小千就来教大家如何去使用Python里面的函数式编程和闭包. 函数式编程 函数式编程这个概念我们可能或多或少都听说过, ...

  • 深入理解 Python 内部函数和闭包(进阶)

    大家好,我是安果! 本文以内部函数为主线,深入讲解内部函数和闭包的应用场景和原理,学会后你的 Python 水平会再上一个台阶,对工作面试或实战应用都会很有帮助 本文包括: 函数是一等公民 内部函数定 ...

  • Python|二叉树叶子结点问题解决方法

    问题描述键盘输入一颗二叉树,求解其叶子结点个数.示例: 输入:4,2,6,1,3,5输出:3解决方案一棵树当中没有子结点(即度为0)的结点称为叶子结点,简称"叶子".当二叉树为空时 ...

  • Python数据分析库有哪些?常见分类!

    众所周知,Python前景好.需求量大.薪资高.就业岗位多,除了基本的开发工作之外,还可以从事人工智能.数据分析.网络爬虫等岗位.那么说起数据分析,你知道Python常用数据分析库有哪些吗?我们一起来 ...

  • PyPy为什么能让Python比C还快?一文了解内在机制

    来自|机器之心 「如果想让代码运行得更快,您应该使用 PyPy.」 - Python 之父 Guido van Rossum 对于研究人员来说,迅速把想法代码化并查看其是否行得通至关重要.Python ...

  • 【Python爬虫】:使用高性能异步多进程爬虫获取豆瓣电影Top250

    在本篇博文当中,将会教会大家如何使用高性能爬虫,快速爬取并解析页面当中的信息.一般情况下,如果我们请求网页的次数太多,每次都要发出一次请求,进行串行执行的话,那么请求将会占用我们大量的时间,这样得不偿 ...