python中闭包

闭包的条件

1.外部函数中定义了内部函数

2.外部函数有返回值

3.外部函数的返回值是内部函数的函数名字

4.内部函数对外部函数的变量进行了修改

大概是这个一个格式

def  外部函数():  

  a = 0

  .........

  def 内部函数():

       nonlocal a

  a = 100

  return 内部函数

def func(a, b):
    def line(x):
        nonlocal a
        a = 3
        return a * x - b

    return line


line = func(2, 3)
print(line(5))

作用:内部函数用来修改外部函数的变量(可以类比js中闭包的概念,我感觉差不多)

原文地址:https://www.cnblogs.com/whr-blogs/p/python_closure.html