python装饰器不改变原函数属性,带参装饰器
def copy_properties(src,dst): # 提供一个函数,被封装函数属性 copy 到包装函数属性,保持被封装函数属性不变
dst.__name__=src.__name__
dst.__doc__=src.__doc__
dst.__qualname__=src.__qualname__
def logger(fn):
def wrapper(*args,**kwargs):
‘i‘m wrapper‘
print(‘begin‘)
kin=fn(*args,**kwargs)
print(‘after‘)
return kin
copy_properties(fn,wrapper)
return wrapper
@logger
def lag(x,y):
‘i‘m a function‘
return x+y
print(‘name={}
doc={}‘.format(lag.__name__,lag.__doc__))

![python装饰器不改变原函数属性,带参装饰器
[编程语言教程]](https://www.zixueka.com/wp-content/uploads/2024/01/1706711767-c68eb7ba070f5d1.jpg)
