晒晒我家小院子

0%

装饰器简单使用

装饰器(装饰模式)

例子1

1
2
3
4
5
6
7
8
9
# 两层
def log(func):
def wrapper(*args, **kw):
print('log')
return func(*args, **kw)
return wrapper
@log
def test():
print('test')

例子2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 三层:针对decorator有参数的时候
def log(text):
def decorater(func):
def wrapper(*args, **kw):
print('log:', text)
return func(*args, **kw)

return wrapper

return decorater


@log('text')
def test():
print('test')

备注

1
2
import functools
@functools.wraps(func) # 将函数func的一些特殊属性复制给wrapper函数(最里层函数)
-------------本文结束感谢您的阅读-------------