python 的闭包

我们先来看一个函数

def lazy_sum(*args):
    def sum():
        ax=0
        for n in args:
            ax=ax+n
        return ax
    return sum

#调用
f=lazy_sum(1,2,3,4,5)
f  #<function __main__.lazy_sum.<locals>.sum()>
f()  #可以这样调用
lazy_sum(1,2,3,4,5)()  #也可以这样调用

闭包(Closure):在一个外函数中定义了一个内函数,内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用。这样就构成了一个闭包

注意:返回一个函数时,牢记该函数并未执行,返回函数中不要引用任何可能会变化的变量

文章参考廖雪峰老师官网:https://www.liaoxuefeng.com/wiki/1016959663602400/1017434209254976

posted on 2020-07-14 14:45  小小喽啰  阅读(124)  评论(0编辑  收藏  举报