python 装饰器

1
2
3
4
5
6
7
8
9
10
11
12
def use_logging(func):

def wrapper(*args, **lkwargs):
logging.warn("%s is running" % func.__name__)
return func(*args, **lkwargs)
return wrapper

def bar():
print('i am bar')

bar = use_logging(bar)
bar()
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Foo(object):
def __init__(self, func):
self._func = func

def __call__(self):
print('class decorator running')
self._func()
print('class decorator ending')

@Foo
def bar():
print('bar')

bar()
请作者喝一杯咖啡☕️