python不常用之闭包

简单来说就是函数外部调用函数内部的嵌套函数

def func():
    a = 100

    def inner():
        b = 99
        print(a, b)

    return inner


sss = func()
sss()

作用就是获取func()中的a,当然直接return a也可以拿到,所以不常用。
同时闭包也可以同级之间调用

def func():
    a = 100

    def inner():
        b = 99
        print(a, b)
   def inner2():
        inner()
   return inner2


sss = func()
sss()

实际工作不常用,考试面试总出现,类似这种

def func(m,n):

    def inner():
        b = 99
        print(m,n,b)

    return inner


sss = func(8,5)

sss2 = func(81,5)
sss2()
sss()

判断m,n的值是否变化,闭包状态是有保存的,所以结果是

81599
8599

猜你喜欢

转载自blog.csdn.net/fuzizhu1/article/details/108469301