我先举个例子 代码如下:
def test(a,b,c): print( a*b+c)test(1,1,2)test(1,1,3)test(1,1,4)test(1,1,5)test(1,1,6)test(2,2,1)test(2,2,2)test(2,2,3)test(2,2,4)我们会发现一个共同的问题, a,b 是固定的,只是c 会变动,如何减少a,b 参数的传递, 开发的信仰咱们忘了吗 , 不写重复的代码 。
那如何解决呢, 就用到闭包 , 修改下
def test(a,b): def test_in(c): print( a*b+c) return test_innum=test(1,1) # 把test_in 引用交给了numnum(2) # 执行 内嵌函数num(3) # 达到了减少 参数的传递, num(4)num(5)num_02=test(2,2) # 如果不想用上边的 a,b 值 可以用重新创建新的引用 num_02num_02(2)num_02(3)num_02(4)num_02(5)num(6) # 这个依然会继续执行, 还是按照a=1,b=1 他们是开辟两个不同的空间。