分享

python之闭包

 陈喻 2021-10-19

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

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多