装饰器有很多经典的使用场景,例如插入日志、性能测试、事务处理等等,有了装饰器,就可以提取大量函数中与本身功能无关的类似代码,从而达到代码重用的目的。

装饰器有两种写法:

  1. 装饰器不传参数

  2. 装饰器自带参数

 

 

第一种,装饰器不传参写法:

def log1(func):
    @wraps(func)
    def wrapper(*args, **kw):
        print('%s():' % func.__name__)
        return func(*args, **kw)
    return wrapper

# 第一种不带参数的装饰器调用
@log1
def fn1():
    print('2017-06-16')
print(fn1())

# 执行结果如下:
# fn1():
# 2017-06-16
View Code

相关文章: