python 装饰器示例使用
print('----------------11111------------------------') def sum_time(func): def wrapper(): print('1') func() print('2') return wrapper @sum_time def num(): print('3') num() print('----------------22222------------------------') def sum_time(func): def wrapper(*args,**kwargs): print('1') ret=func(*args,**kwargs) print(ret) print('2') return wrapper @sum_time def num(x,y): z=x*y return z a=num(3,4) print(a) print('----------------33333------------------------') def sum_time(func): def wrapper(*args,**kwargs): print('1') ret=func(*args,**kwargs) print(ret) print('2') return ret return wrapper @sum_time def num(x,y): z=x*y return z a=num(3,4) print(a) print('----------------44444------------------------') def sum_time(func): """doc-sum_time""" def wrapper(): """doc-wrapper""" func() return wrapper @sum_time def num(): """doc_num""" num() print(num.__name__, num.__doc__) print('----------------55555------------------------') from functools import wraps def sum_time(func): """doc-sum_time""" @wraps(func) def wrapper(): """doc-wrapper""" func() return wrapper @sum_time def num(): """doc_num""" num() print(num.__name__, num.__doc__)
运行结果如下: