首页 > 编程语言 > 详细

python 闭包

时间:2020-12-19 18:05:59      阅读:27      评论:0      收藏:0      [点我收藏+]

什么是闭包:

  闭包是指引用了此函数外部的变量的函数

  说明: 在本质上,闭包是将内部嵌套函数和函数外部的执行环境绑定在一起的对象

  闭包必须满足三个条件:

    1. 必须有一个内嵌函数

    2. 内嵌函数必须引用外部函数中的变量

    3. 外部函数返回值必须是内嵌函数

In [5]: def get_fx(a, b, c):
   ...:     def fx(x):
   ...:         return a * x ** 2 + b * x + c
   ...:     return fx
   ...:
   ...: f123 = get_fx(1, 2, 3)
   ...: print(f123(20))
   ...: print(f123(50))
   ...:
   ...: f654 = get_fx(6,5,4)
   ...: print(f654(10))
   ...: print(f654(30))
   ...:
443
2603
654
5554

In [6]: def make_power(y):
   ...:     def fn(arg):
   ...:         return arg ** y
   ...:     return fn
   ...:
   ...:
   ...: pow2 = make_power(2)  # 请问pow2绑定的是什么?
   ...: print(5的平方是:, pow2(5))
   ...:
   ...: # 求1**2 + 2 ** 2 + 3 ** 2 + .... 100 ** 2
   ...: print(sum(map(lambda x: x ** 2, range(1, 101))))
   ...: print(sum(map(make_power(2), range(1, 101))))
   ...:
   ...: print("1 ** 3 + 2**3 + ...... + 100 ** 3=")
   ...: print(sum(map(lambda x: x ** 3, range(1, 101))))
   ...: print(sum(map(make_power(3), range(1, 101))))
   ...: # print(sum(map(lambda x: x ** 3, range(1, 101))))
5的平方是: 25
338350
338350
1 ** 3 + 2**3 + ...... + 100 ** 3=
25502500
25502500

In [7]:

 

 

python 闭包

原文:https://www.cnblogs.com/longyuu/p/14159800.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!