import functools
def log(func): functools.wraps(func) wrapper(*args,**kw): print('begin call') print('%s %s():'%(text,func.__name__)) f=func(*args,**kw) print('end call') return f return wrapper
import functools import time import types
def log(arg): if isinstance(arg,types.FunctionType): @functools.wraps(arg) def wrapper(*args,**kw): print('begin call') print('call %s():'%(arg.__name__)) f=arg(*args,**kw) print('end call') return f return wrapper elif isinstance(arg,str): def decorator(func): @functools.wraps(func) def wrapper(*args,**kw): print('%s %s():' % (arg,func.__name__)) return func(*args,**kw) return wrapper return decorator
@log
def f(): pass
@log('execute')
def g(): pass
Sign in to make a reply
Alvin天枭
作业
import functools
1
def log(func): functools.wraps(func) wrapper(*args,**kw): print('begin call') print('%s %s():'%(text,func.__name__)) f=func(*args,**kw) print('end call') return f return wrapper
2
import functools import time import types
def log(arg): if isinstance(arg,types.FunctionType): @functools.wraps(arg) def wrapper(*args,**kw): print('begin call') print('call %s():'%(arg.__name__)) f=arg(*args,**kw) print('end call') return f return wrapper elif isinstance(arg,str): def decorator(func): @functools.wraps(func) def wrapper(*args,**kw): print('%s %s():' % (arg,func.__name__)) return func(*args,**kw) return wrapper return decorator
@log
def f(): pass
@log('execute')
def g(): pass