闭包

    xiaoxiao2022-07-13  123

    def test(number): def test_in(number_in): print("in test_in 函数, number_in is %d" % number_in) return number+number_in return test_in ret = test(20) print(ret(100)) print(ret(200)) ###在函数内部定义函数,并把内部函数的函数名的引用return返回

    实例一

    def line_conf(a, b): def line(x): return a*x + b return line line1 = line_conf(1, 1) line2 = line_conf(4, 5) print(line1(5)) print(line2(5))

    实例二

    def counter(start=0): def incr(): nonlocal start start += 1 return start return incr c1 = counter(5) print(c1()) print(c1()) c2 = counter(50) print(c2()) print(c2()) ###修改外部函数中的变量

    总结

    函数内的属性,都是有声明周期,都是在函数执行期间 内部函数对外部函数**作用域**里**变量**的引用 闭包内的闭包函数私有化了变量,完成了数据的封装,类似与面向对象
    最新回复(0)