python之闭包
【摘要】 1 闭包概念
绑定了函数内部引用的所有变量,把它引用的东西都放在一个上下文中“包”了起来
2 闭包的Demo理解
需求:比如我们要实现2个函数,每个函数有个参数,然后现在需要实现这2个函数参数的相加功能
1) 不用闭包python普通实现
#!/usr/bin/env pyt...
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个函数相互连接起来,闭包是函数式编程的灵活、是函数式编程的核心。
文章来源: chenyu.blog.csdn.net,作者:chen.yu,版权归原作者所有,如需转载,请联系作者。
原文链接:chenyu.blog.csdn.net/article/details/84451196
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)