UU Blog

python装饰器

个人觉得装饰器就是Python对闭包的一种的语法糖。

可以灵活抽离出一些雷同代码,通过装饰器方便地调用,使得程序更加简单专注于逻辑的处理。

例子:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
def check_data(func):
def check(*args, **kwargs):
print('in decorator')
print(args)
print(kwargs)
func(*args, **kwargs)
return check


@check_data
def echo_name(name):
print(name)


echo_name(name='jack')
print('--------')
echo_name(name='bob')

结果

1
2
3
4
5
6
7
8
9
in decorator
()
{'name': 'jack'}
jack
--------
in decorator
('bob',)
{}
bob
给作者打一针鸡血