装饰器和闭包

装饰器:本质就是函数,功能是为其它函数添加附加功能。

原则:

1.不修改被修饰函数的源代码。

2.不修改被修饰函数的调用方式。

 

闭包:在一个外函数中定义了一个内函数,内函数里运用了外函数的局部变量,并且外函数的把这个内函数作为参数返回。这样就构成了一个闭包。

 

装饰器实例:

import time

def timeit(func):
    def test():
        start = time.clock()
        func()
        end = time.clock()
        print('time used: ', end - start)
    return test

@timeit #等价于sum1 = timeit(sum1)
def sum1():
    a = 1 + 2
    print(a)

sum1()

 

def log(func):
    def wrapper(*args, **kw):
        print('call %s():' % func.__name__)
        return func(*args, **kw)
    return wrapper

@log #等价于now = log(now)
def now():
    print('2015-3-25')

now()

 参考博客

https://www.cnblogs.com/wupeiqi/articles/4980620.html

posted @ 2019-06-06 12:27  xd_xumaomao  阅读(97)  评论(0编辑  收藏  举报