首页 > 其他 > 详细

简单回顾之闭包

时间:2020-06-28 20:17:36      阅读:48      评论:0      收藏:0      [点我收藏+]

温故而知新。

现在回顾下之前的闭包,感觉比之前要更好地理解了。

定义:

闭包就是能够读取其他函数内部变量的函数。例如在javascript中,只有函数内部的子函数才能读取局部变量,

所以闭包可以理解成“定义在一个函数内部的函数“。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。

闭包:

函数对象+函数内部需要使用的一个外部变量=函数返回的整体

直接上代码

def timer(func):
    def func1():
        print("start...")
        t1=time.time()
        func()
        print("end...")
        t2=time.time()
        return t2-t1
    return func1

@timer
def a():
    i=1
    while i<1000000:
        i+=10

print(a())   #将a函数对象作为参数传到timer中这个是由装饰器自动完成的,a()相当于func1()

带参数的:

def run(func):
    def func1(*args,**kwargs):
        print("start...")
        a=func(*args,**kwargs)
        print("end")
        return a
    return func1

@run
def count(*args,**kwargs):
    result=0
    for i in args:
        result+=i
    for j in kwargs.values():
        result+=j

    return result

print(count(1,2,3,a=3,b=3))

 

简单回顾之闭包

原文:https://www.cnblogs.com/King-Tong/p/13204455.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!