什么是闭包:
闭包是指引用了此函数外部的变量的函数
说明: 在本质上,闭包是将内部嵌套函数和函数外部的执行环境绑定在一起的对象
闭包必须满足三个条件:
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]:
原文:https://www.cnblogs.com/longyuu/p/14159800.html