说明
修饰器的定义为动态地给一个对象添加一些额外的职责。
在Python中Decorator mode可以按照像其它编程语言如C++, Java等的样子来实现,但是Python在应用装饰概念方面的能力上远不止于此,Python提供了一个语法和一个编程特性来加强这方面的功能。即装饰器:
def dec(fn):
return fn
@dec
def fun(): pass
简单例子
需要在某个原有功能上加一层验证
def a():
print 'a'
def b():
print 'a'
a b 方法很多地方调用,不想更改原有调用方式
即:
def a():
权限验证
print 'a'
def b():
权限验证
print 'a'
假如有很多的接口—-
用装饰器来实现:
def auth(func):
def inner():
# 验证1
return func()
return inner
@auth
def a():
print 'a'
@auth
def a():
print 'b'
应用场景
- 身份认证
- 权限检查
- 记日志
- 检查参数
- 加锁