Python学习笔记2:装饰器(decorator)

  • 装饰器是一个函数,它返回一个函数
  • 注意functools.wraps的使用

两层嵌套的装饰器

import functools
def log(func):    
    @functools.wraps
    def wrapper(*args,**kw):
        print('call %s()'% func.__name__)
        return func(*args,**kw)
    rerurn wrapper

三层嵌套的装饰器(针对带参数的装饰器)

import functools
def log(text):
    def decorator(func):
        @functools.wraps
        def wrapper(*args,**kw):
            print('%s %s():' % (text,func.__name__))
            return func(*args,**kw)
        return wrapper
    return decorator

练习:设计一个decorator,它可作用于任何函数上,并打印该函数的执行时间:

坚持原创分享,您的支持将鼓励我继续创作!