import functools
def log1(func):
@functools.wraps(func)#这句相当于:wrapper.__name__ = func.__name__
def wrapper(*args, **kw):
print('call %s():' % func.__name__)
return func(*args, **kw)
return wrapper
def log2(text):
def decorator(func):
@functools.wraps(func)
def wrapper(*args, **kw):
print('%s %s():' % (text, func.__name__))
return func(*args, **kw)
return wrapper
return decorator
@log1
def sort1():
print("this is a sort1")
@log2('test')
def sort2():
print("this is a sort2")
sort1=log1(sort1)
print("sort1 的name属性是 %s" %(sort1.__name__))
sort1()
sort2=log2('sort2的test')(sort2)
print("sort2 的name属性是 %s" %(sort2.__name__))
sort2()
有意思的代码---装饰器
最新推荐文章于 2022-04-13 11:01:04 发布