def wrapper(func):
def dec(*args, **kw):
print('在{} 函数之前装饰:'.format(func.__name__))
func(*args, **kw)
return dec
@wrapper
def f1():
pass
f1() # 在f1 函数之前装饰
print(f1.__name__) # # dec 不是f1,因为这时已经变成了dec函数
import functools
def wapper(func):
@functools.wraps(func) # 让被装饰的函数保持原来的名字
def dec(*args,**kwargs):
return func(*args,**kwargs)
return dec
@wapper
def f1():
pass
print(f1.__name__)