python装饰器不改变原函数属性,带参装饰器


	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__))
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » python装饰器不改变原函数属性,带参装饰器