import functools def log(text): if isinstance(text,str): def decorator(func): @functools.wraps(func) def wrapper(args, **kw): print('begin call') f = func(args, kw) print('end call') return f return wrapper return decorator else: @functools.wraps(text) def wrapper(*args, kw): print('begin call') f = text(args, *kw) print('end call') return f return wrapper @log def f1(): print('running...')
@log('execute') def f2(): print('running...')
f1() f2()
Sign in to make a reply
________却
-- coding: utf-8 --
import functools def log(text): if isinstance(text,str): def decorator(func): @functools.wraps(func) def wrapper(args, **kw): print('begin call') f = func(args, kw) print('end call') return f return wrapper return decorator else: @functools.wraps(text) def wrapper(*args, kw): print('begin call') f = text(args, *kw) print('end call') return f return wrapper @log def f1(): print('running...')
@log('execute') def f2(): print('running...')
f1() f2()